首页 > 解决方案 > 版本控制中的 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

在生产中,所有配置都是从配置服务器检索的。

关于此设置的问题:

  1. 开发人员 B 开始处理这个项目并克隆它。不幸的是,他的本地数据库与另一个用户在另一个端口上。他要怎么改?使用指定的环境变量?
  2. 开发人员 B 在过滤器中遇到问题,并希望在 DEBUG 上设置 spring 安全跟踪。再说一遍,他怎么修改它而不污染 git 存储库呢?

我看到了哪些选项:

  1. 环境变量
  2. git 会忽略每个开发人员都可以在本地设置的 -local.properties 文件。在那里我可以设置跟踪级别等。

我错过了什么?我想要一个现成的开发配置文件,但当然每个开发人员机器都需要进行调整。

标签: javaspringgitspring-boot

解决方案


您可以定义用于构建 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

推荐阅读