又学一招!java启动命令的秘密!

又学一招!java启动命令的秘密!

编码文章call10242025-06-20 14:31:424A+A-

今天发布新java应用,配置文件有多个yml组成:

application-cache.yml
application-config.yml
application-db.yml
application-extension.yml
application.yml
regionmapper.properties

其中:application.yml 有include将几个yml关联起来

spring:
  application:
    name: demo
  profiles:
    include:
      - cache
      - config
      - db
      - extension

通常我们的应用启动命令是:

java \$JAVA_OPTS \$JAVA_AGENT -Djava.security.egd=file:/dev/./urandom -jar /app/java-application.jar --spring.config.location=/etc/config/application.yml

但是启动提示找不到对应的 配置文件数据。

比如application-cache.yml

#缓存配置定义
spring:
 ...... # 省略部分 配置
  #redis缓存配置
  redis:
    lettuce:
      pool: #连接池配置
        max-active: 8 #最大连接数,默认8
        max-wait: -1  #最大阻塞时间,默认-1
        max-idle: 8   #最大空闲连接,默认8
        min-idle: 0   #最小空闲连接,默认0
        min-evictable-idle-time: 30m #连接的最小空闲时间,默认30分钟
        time-between-eviction-runs: 15m #空闲连接检测的周期.默认为-1,表示不检测
    host: x.x.x.x
    port: 6379
    password: *******


  #本地缓存配置
  cache:
    type: caffeine
    caffeine:
      spec: initialCapacity=100,maximumSize=1000,expireAfterWrite=30s

application.yml 是将application-cache.yml引入的,但是启动就是报错,找不到spring.redis.host.

后经同事提醒将启动命令配置参数修改:

--spring.config.location=/etc/config/application.yml
改成 
 --spring.config.location=/etc/config/
 后面不指定application.yml

完整命令:

java \$JAVA_OPTS \$JAVA_AGENT -Djava.security.egd=file:/dev/./urandom -jar /app/java-application.jar --spring.config.location=/etc/config/

启动成功了。

又进步了!

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4