springboot多环境配置

一、前言

      在做项目过程中,由于项目数量增多,项目之间的关联性变的紧密起来,当要测试一个功能的时候,可能要同时启动好几个项目,这时部署到服务器就变成了一个复杂的工作量,

一个不小心就会发错版。由于我们使用的是Springboot搭建的项目,它支持多环境配置。

 

 

二、对比

      在使用多环境配置之前:application.properties文件:

      springboot多环境配置

     

      可能我们需要在配置文件要配置测试和正式的连接,路径等等,发布测试的时候就屏蔽正式的,发布正式的就屏蔽测试的,完全是靠人手动去弄的,接着重复操作,打包,上传至服务器,启动......结果发现配置文件搞错了,重新再来一遍。

 

      那么,在使用多环境配置后:

      springboot多环境配置

      其中,dev是开发环境,prod是生产环境即正式环境。

      这时,我们每次在本地进行开发的时候只需在application.properties中添加:

spring.profiles.active=dev

    

      然后在对应的dev和prod里各新建一个db.properties,放入开发/正式的数据库连接

 

三、读取对应的配置文件

 

      springboot多环境配置                    springboot多环境配置

 

      现在是测试和正式的配置文件一式一份。

      在config.properties文件中这样的一行配置:

 

      prod/config.properties:

order.notify.url=0.0.0.0:6666/prod

     

      dev/config.properties:

order.notify.url=0.0.0.0:6666/dev

 

      下面就来动态读取:

      

 1 @Configuration
 2 @PropertySource("classpath:${spring.profiles.active}/config.properties")
 3 public class WxpayConfiguration {
 4 
 5     public static String order_notify_url;
 6 
 7     @Value("${order.notify.url}")
 8     public void setOrder_notify_url(String order_notify_url) {
 9         WxpayConfiguration.order_notify_url = order_notify_url;
10     }
11 }

 

       @PropertySource读取配置文件,${spring.profiles.active}读取当前环境。

       @Value读取配置文件的指定属性的值。

       这时,在其他地方调用  WxpayConfiguration.order_notify_url 即可获取到值

 

转载于:https://www.cnblogs.com/wangyaobk/articles/8351585.html