您的当前位置:首页正文

SpringBoot配置文件放在jar外部

来源:筏尚旅游网
SpringBoot配置⽂件放在jar外部

Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,⽅便配置呢?查询官⽹,可以得到下⾯的⼏种⽅案:通过命令⾏指定

SpringApplication会默认将命令⾏选项参数转换为配置信息例如,启动时命令参数指定:

java -jar myproject.jar --server.port = 9000

从命令⾏指定配置项的优先级最⾼,不过你可以通过setAddCommandLineProperties来禁⽤SpringApplication.setAddCommandLineProperties(false).外置配置⽂件

Spring程序会按优先级从下⾯这些路径来加载application.properties配置⽂件当前⽬录下的/config⽬录当前⽬录

classpath⾥的/config⽬录classpath 跟⽬录

因此,要外置配置⽂件就很简单了,在jar所在⽬录新建config⽂件夹,然后放⼊配置⽂件,或者直接放在配置⽂件在jar⽬录⾃定义配置⽂件

如果你不想使⽤application.properties作为配置⽂件,怎么办?完全没问题

java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties或者

java -jar -Dspring.config.location=D:\\config\\config.properties springbootrestdemo-0.0.1-SNAPSHOT.jar 当然,还能在代码⾥指定@SpringBootApplication

@PropertySource(value={\"file:config.properties\public class SpringbootrestdemoApplication {

public static void main(String[] args) {

SpringApplication.run(SpringbootrestdemoApplication.class, args); }}

按Profile不同环境读取不同配置

不同环境的配置设置⼀个配置⽂件,例如:

dev环境下的配置配置在application-dev.properties中;prod环境下的配置配置在application-prod.properties中。在application.properties中指定使⽤哪⼀个⽂件spring.profiles.active = dev

当然,你也可以在运⾏的时候⼿动指定:

java -jar myproject.jar --spring.profiles.active = prod参考:1 参见

作者:Jadepeng

出处:jqpeng的技术记事本--您的⽀持是对博主最⼤的⿎励,感谢您的认真阅读。

本⽂版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在⽂章页⾯明显位置给出原⽂连接,否则保留追究法律责任的权利。

因篇幅问题不能全部显示,请点此查看更多更全内容