这里主要介绍Spring boot配合maven实现多环境变量配置,java开发工具使用eclipse,其它如gradle,或者只用其它IDE,基本原理差不多。
常见多环境的产生有两个方面:
1 开发环境和生产环境
2 不同用户的开发环境
下面以dev和prod为例,并且有两个用户user1和user2
在统一默认的application.properties文件中给出变量:
spring.profiles.active=@env@
这里注意一下,maven默认的变量占位符为${}, 如果parent是spring-boot-starter-parent,占位符变为@@
user 1, dev所对应的properties文件和pom.xml文件(只列出不同内容)
application-dev-user1.properties
server.port=8080
pom.xml
user 1, prod所对应的properties文件和pom.xml文件(只列出不同内容)
application-prod-user1.properties
server.port=80
pom.xml
user 2, dev所对应的properties文件和pom.xml文件(只列出不同内容)
application-dev-user2.properties
server.port=8081
pom.xml
user 2, prod所对应的properties文件和pom.xml文件(只列出不同内容)
application-prod-user2.properties
server.port=9000
pom.xml
配置步骤:
1 在src/main/resources下创建四个文件application-dev-user1.properties, application-prod-user1.properties,application-dev-user2.properties, application-prod-user2.properties
分别定义 server.port
2 在pom.xml中添加四个profiles
dev-user1
true
dev-user1
c:/user1/project/src/main/resources/static
prod-user1
prod-user1
c:/user1/project/src/main/resources/static
dev-user2
dev-user2
c:/user2/project/src/main/resources/static
prod-user2
prod-user2
c:/user2/project/src/main/resources/static
3 右键点击项目,run as -> maven build ...在配置选项Profiles填入对应的profile,property文件就会正确的被打包。
如果存在多个开发者都使用不同属性值,也可以在各自开发环境中的.m2\setting.xml中配置profiles.