springboot打成jar包后,虽然运行方便,但需要修改配置文件时就太不方便了。能不能把配置文件放在外面呢,这样就不用频繁打包替换了,对于系统默认的application.yml(或application.properties)的配置文件还是比较方便的,在jar包同级目录下创建config文件夹放进去就可以了,如果有其他自定义的yml,只需要在spring.profiles.active里注明就可以了,比如
spring: profiles: #local,config表示引入配置文件application.yml,application-config.yml,其中config是可以自定义为其他名称的 active: local,config
如果是注解就比较麻烦了,举个栗子
//@ImportResource(locations = arrayOf("classpath:hikvision-service.xml"))//在jar内部xml生效,此项一般用于开发测试 @ImportResource(locations = arrayOf("file:config/hikvision-service.xml"))//在外部config文件夹下xml生效,此项一般用于jar包发布
还有一种情况是在代码里加载配置文件的,比如
PropertiesFactoryBean propertiesFactory = new PropertiesFactoryBean(); //propertiesFactory.setLocation(new ClassPathResource("application-qpid.properties"));//在jar内部xml生效,此项一般用于开发测试 propertiesFactory.setLocation(new ClassPathResource("file:config/application-qpid.properties"));//在外部config文件夹下生效,此项一般用于jar包发布
这样的话yml(properties)和xml配置文件都可以放到外部了。
另外可以阅读以下这篇文章:https://www.cnblogs.com/xiaoqi/p/6955288.html,说不定还有更好的思路。