java - 版本控制中的 Spring 属性
问题描述
我创建了以下属性文件,这些文件都签入了 git:
**application.properties**
spring.application.name=my-service
spring.cloud.config.fail-fast=true
spring.cloud.config.uri=${CONFIG_URI:http://localhost:8888}
spring.cloud.loadbalancer.ribbon.enabled=false
**application-dev.properties**
spring.cloud.config.enabled=false
eureka.client.enabled=false
spring.application.name=my-service
spring.datasource.url=jdbc:mysql://${DB_URL:http://localhost:3306/db_example}
spring.datasource.username=dev
spring.datasource.password=local
在生产中,所有配置都是从配置服务器检索的。
关于此设置的问题:
- 开发人员 B 开始处理这个项目并克隆它。不幸的是,他的本地数据库与另一个用户在另一个端口上。他要怎么改?使用指定的环境变量?
- 开发人员 B 在过滤器中遇到问题,并希望在 DEBUG 上设置 spring 安全跟踪。再说一遍,他怎么修改它而不污染 git 存储库呢?
我看到了哪些选项:
- 环境变量
- git 会忽略每个开发人员都可以在本地设置的 -local.properties 文件。在那里我可以设置跟踪级别等。
我错过了什么?我想要一个现成的开发配置文件,但当然每个开发人员机器都需要进行调整。
解决方案
您可以定义用于构建 spring 的配置文件,这些配置文件将传递给项目构建时间。因此,定义尽可能多的配置文件属性文件:
application-prod.properties
application-user1.properties
application-user2.properties
application-user3.properties
您可以通过在项目配置中传递 VM-Options 来加载属性
-Dspring.profiles.active=user2
请注意,您可以将所有配置文件使用的通用属性定义为:
application.properties
并将您的默认配置文件设置application.properties
为:
spring.profiles.active=prod
推荐阅读
- java - SpringController中的自定义json返回
- ios - IOS Alamofire ssl 固定
- java - 从目标文件到字段的反序列化问题
- swift - 如何在 SwiftUI 中设置图像的宽度和高度?
- c++ - 指针数据类型变量如何包含对象?
- swagger - 如何将 ref 示例与另一个 ref 示例一起使用?
- java - 升级 React Native 0.61.5:Android 卡在闪屏
- aspnetboilerplate - UpdateAsync 期间的 AbpBoilerPlate EF Core 3.0 StackOverflowException
- excel - 如何从列中的所有单元格中删除第二个句号之后的所有文本?
- javascript - Vue,v-bind:将数据作为属性传递