你不知道的java -jar

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}设置值?

错误示范

需要注入变量的logback.xml

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加载配置路径,多个配置用,隔开,该配置将导致默认的配置失效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值