springboot多环境配置
一、前言
在做项目过程中,由于项目数量增多,项目之间的关联性变的紧密起来,当要测试一个功能的时候,可能要同时启动好几个项目,这时部署到服务器就变成了一个复杂的工作量,
一个不小心就会发错版。由于我们使用的是Springboot搭建的项目,它支持多环境配置。
二、对比
在使用多环境配置之前:application.properties文件:
可能我们需要在配置文件要配置测试和正式的连接,路径等等,发布测试的时候就屏蔽正式的,发布正式的就屏蔽测试的,完全是靠人手动去弄的,接着重复操作,打包,上传至服务器,启动......结果发现配置文件搞错了,重新再来一遍。
那么,在使用多环境配置后:
其中,dev是开发环境,prod是生产环境即正式环境。
这时,我们每次在本地进行开发的时候只需在application.properties中添加:
spring.profiles.active=dev
然后在对应的dev和prod里各新建一个db.properties,放入开发/正式的数据库连接
三、读取对应的配置文件
现在是测试和正式的配置文件一式一份。
在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