springboot启动jar 命令
java [ options ] -jar file.jar [ arguments ]
- options 系统属性
- arguments ,springboot启动的main函数入参
命令举例
java -Dlog.Home=/home/logs/ -jar --server.port = 8081
命令解析
- -Dlog.Home 相当于系统变量,环境变量。System.getProperty("log.Home ")可以得到/home/logs
- –server.port 相当于在application.properties中写的server.port=8080
动态给logback.xml中的${log.file.home}设置值?
错误示范
java -Dloglevel=INFO -jar springboot-test-box-0.0.1-SNAPSHOT.jar --server.port=8081 --log.file.home=./log --log.file.name=test
正确用法
java -Dloglevel=INFO -Dlog.file.home=./log -Dlog.file.name=test -jar springboot-test-box-0.0.1-SNAPSHOT.jar --server.port=8081
springboot启动配置加载顺序
**备注:优先级按照顺序由高到低,数字越小优先级越高**
- 在命令行中传入的参数。类似于java -Dspring.profiles.active -jar
–server.port=8081之类。 - SPRING_APPLICATION_JSON属性,该属性以JSON形式存储在系统环境变量中。
- java:comp/env中JNDI属性。
- Java的系统的属性,可通过System.getProperties()获得相关内容。
- 操作系统中的环境变量。
- 通过random.*配置的随机属性。
- 位于当前应用jar包外,针对不同{profile}环境的配置文件内容。
- 位于当前应用jar包内,针对不同{profile}环境的配置文件内容。
- 位于当前应用jar包外的application.properties或application.yml配置内容。application.properties优先级更高,默认情况这两个配置都会加载。
- 位于当前应用jar包内的application.properties或application.yml配置内容。application.properties优先级更高,默认情况这两个配置都会加载
- 在@Configuration注解修改的类中,通过@PropertySource注解定义的属性。
- 应用默认属性,使用SpringApplication.setDefaultProperties定义的属性内容。
实战举例
nohup java -Xms512m -Xmx512m -jar -Dloader.path="../lib/" -Dlog.file.home="../log" -Dog.file.name="test" -Dloglevel="INFO" -Dspring.config.location="../config/application.properties,../config/application.yml" -Dlogging.config="../log/logback-spring.xml" ../core/test.jar > /dev/null 2>&1 &
- -Xms 最小堆内存
- -Xmx 最大堆内存
- -Dloader.path设置spring启动加载jar包路径
- -Dspring.config.location加载配置路径,多个配置用,隔开,该配置将导致默认的配置失效