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支持多种属性配置的方式,在指定属性时,需要注意它们的优先级。以下是各种属性配置的优先级顺序

  1. 命令行参数(Command Line Arguments):命令行参数具有最高优先级,可以用于覆盖任何其他属性的值。例如:--server.port=8000
  2. JNDI属性(JNDI properties):以在JNDI(Java Naming and Directory Interface)环境中单独配置的属性用于覆盖其他一些属性。
  3. Java系统属性(System properties):可以在JVM启动过程中通过-D选项单独指定的Java系统属性,例如: -Dspring.profiles.active=prod。由于其在应用程序启动之前就已加载,因此这些属性可以用于配置Spring的配置体系结构和其他一些早期初始化。
  4. 操作系统环境变量(OS environment variables):可以在操作系统级别配置的环境变量,例如: export spring_datasource_url=jdbc:mysql://localhost/mydatabase。
  5. application-profile.yml(application-profile.properties):Spring Boot会在classspath下搜索任何profile相关的配置文件,文件格式支持.properties和.yml两种,且不管使用哪种格式,都可以通过spring.profiles.active=xxx来指定当前应用程序的profile。例如: application-dev.yml。
  6. 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包时运行

cmd运行jar包时抓包方法

SpringBoot的jar包引用外部properties文件

springBoot项目打jar包后,修改配置文件中的配置项

springBoot项目打jar包后,修改配置文件中的配置项

java -jar命令引导启动Springboot项目的那点事