• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

Spring Boot – Profile不同环境配置

技术杂谈 勤劳的小蚂蚁 3个月前 (02-03) 70次浏览 已收录 0个评论 扫描二维码


Profile是什么

Profile我也找不出合适的中文来定义,简单来说,Profile就是Spring Boot可以对不同环境或者指令来读取不同的配置文件。

Profile使用

假如有开发、测试、生产三个不同的环境,需要定义三个不同环境下的配置。

基于properties文件类型

你可以另外建立3个环境下的配置文件:
applcation.properties
application-dev.properties
application-test.properties
application-prod.properties
然后在applcation.properties文件中指定当前的环境spring.profiles.active=test,这时候读取的就是application-test.properties文件。

基于yml文件类型

只需要一个applcation.yml文件就能搞定,推荐此方式。
  1. spring:
  2.  profiles:
  3.    active: prod
  4. ---
  5. spring:
  6.  profiles: dev  
  7. server:
  8.  port: 8080  
  9. ---
  10. spring:
  11.  profiles: test  
  12. server:
  13.  port: 8081    
  14. ---
  15. spring.profiles: prod
  16. spring.profiles.include:
  17.  - proddb
  18.  - prodmq
  19. server:
  20.  port: 8082      
  21. ---
  22. spring:
  23.  profiles: proddb  
  24. db:
  25.  name: mysql  
  26. ---
  27. spring:
  28.  profiles: prodmq  
  29. mq:
  30.  address: localhost
此时读取的就是prod的配置,prod包含proddb,prodmq,此时可以读取proddb,prodmq下的配置。
也可以同时激活三个配置。
  1. spring.profiles.active: prod,proddb,prodmq

基于Java代码

在JAVA配置代码中也可以加不同Profile下定义不同的配置文件,@Profile注解只能组合使用@Configuration和@Component注解。
  1. @Configuration
  2. @Profile("prod")
  3. publicclassProductionConfiguration {
  4.    // ...
  5. }

指定Profile

main方法启动方式:

  1. // 在Eclipse Arguments里面添加
  2. --spring.profiles.active=prod

插件启动方式:

  1. spring-boot:run -Drun.profiles=prod

jar运行方式:

  1. java -jar xx.jar --spring.profiles.active=prod
除了在配置文件和命令行中指定Profile,还可以在启动类中写死指定,通过SpringApplication.setAdditionalProfiles方法。
SpringApplication.class
  1. publicvoid setAdditionalProfiles(String... profiles) {
  2.    this.additionalProfiles = newLinkedHashSet<String>(Arrays.asList(profiles));
  3. }


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:Spring Boot – Profile不同环境配置
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00