SpringBoot启动jar包时设置临时属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot启动jar包时设置临时属性相关的知识,希望对你有一定的参考价值。
什么是临时属性
临时属性是指在运行Spring Boot应用程序时,临时指定的一些属性值。临时属性值只对该次运行有效,在下次启动应用程序时将被重置
。这种方式可以极大地方便我们测试不同的应用场景和配置,而不需要修改配置文件。
如何使用临时属性
Spring Boot提供了一种在启动时指定临时属性的方式,即使用命令行参数的方式。我们可以在使用java命令启动Jar包时添加--符号和属性名称来设置临时属性。例如,我们可以通过以下命令设置服务器端口号:
java -jar myapp.jar --server.port=8080
如果需要覆盖多个参数,可以使空格,它们分开,如下所示:
java -jar your-application.jar --server.port=8080 --spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase --spring.datasource.username=admin --spring.datasource.password=passw0rd
临属性的优先级
Spring Boot支持多种属性配置的方式,在指定属性时,需要注意它们的优先级。以下是各种属性配置的优先级顺序:
命令行参数(Command Line Arguments):
命令行参数具有最高优先级,可以用于覆盖任何其他属性的值。例如:--server.port=8000JNDI属性(JNDI properties):
以在JNDI(Java Naming and Directory Interface)环境中单独配置的属性用于覆盖其他一些属性。Java系统属性(System properties):
可以在JVM启动过程中通过-D选项单独指定的Java系统属性,例如: -Dspring.profiles.active=prod。由于其在应用程序启动之前就已加载,因此这些属性可以用于配置Spring的配置体系结构和其他一些早期初始化。操作系统环境变量(OS environment variables):
可以在操作系统级别配置的环境变量,例如: export spring_datasource_url=jdbc:mysql://localhost/mydatabase。application-profile.yml(application-profile.properties):
Spring Boot会在classspath下搜索任何profile相关的配置文件,文件格式支持.properties和.yml两种,且不管使用哪种格式,都可以通过spring.profiles.active=xxx来指定当前应用程序的profile。例如: application-dev.yml。application.yml(application.properties):
该文件是对所有profile的应用。粒度更大的属性配置, 例如:spring.application.name=boot-demo。
总结
Spring Boot的临时属性提供了一种方便快捷的方式,在运行时修改应用程序的运行配置。在实际使用中,我们可以灵活地根据不同场景使用临时属性来测试和验证应用程序。需要注意的是,属性配置的优先级是非常重要的,使用时需要认真考虑它们的覆盖关系。
启动 jar 包时指定 yml 文件
参考技术A 把 application.yml 文件放在执行 java -jar 命令所在的目录中;
执行 java -jar xxx.jar 命令,此时 application.yml 应放在 xxx.jar 同级目录;
执行 java -jar /abc/xxx.jar 命令,此时 application.yml 应放在 / 目录;
需要注意的是,自动加载 application.yml 的位置并不与 jar 包相关,而是与 java 命令有关。
通过 --spring.config.location 参数可以指定配置文件的位置。
java -jar /abc/xxx.jar --spring.config.location=/abc/application.yml
以上是关于SpringBoot启动jar包时设置临时属性的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot的jar包引用外部properties文件
springBoot项目打jar包后,修改配置文件中的配置项