java启动jar包引入外部配置文件方式
前提
打出来的jar中已经包含了各个application-xxx.yml文件,jar所在位置也引入了外部的application-test.yml。
目的:运行时,希望使用的时外部 application-test.yml 文件。
使用了以下命令:
java -Xms1024m -Xmx2048m -jar /home/test/my-test-app-0.0.1.jar --spring.config.location=./application-test.yml --logging.config=./logback.xml -server my-test-app &
可以启动,但是,使用的时jar包里面的application-test.yml配置,而不是外部的application-test.yml文件。
解决问题
使用-D命令设置系统属性

java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-test.yml /home/test/my-test-app-0.0.1.jar --logging.config=./logback.xml -server my-test-app &
或者:
java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-test.yml -Dlogging.config=./logback.xml /home/test/my-test-app-0.0.1.jar -server my-test-app &
启动时,如果直接在jar包所在的目录启动, 例如java -jar的方式, 那么会自动加载config或者根目录下的配置文件(properties, yml)
如果使用脚本的启动方式, 那么可能你的执行脚本路径和脚本所在路径不在同一目录, 那么这个时候可以使用绝对路径来配置, 例如:
java -jar ./test.jar --spring.config.additional-location=../config/ --spring.profiles.active=dev
- spring.config.location:会覆盖内部配置参数
- spring.config.additional-location:会和内部配置参数互补
问题
在测试过程种,如果引入的application文件包含spring.profile 属性,会导致引用失败,所以需要删掉这个文件,如果需要使用spring.profile 则需要在启动的脚本中加入这个配置项:
java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-test.yml -Dlogging.config=./logback.xml /home/test/my-test-app-0.0.1.jar --spring.profile=test -server my-test-app &
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
详解spring boot 以jar的方式启动常用shell脚本
本篇文章主要介绍了详解spring boot 以jar的方式启动常用shell脚本,具有一定的参考价值,有兴趣的可以了解一下2017-09-09
Springboot 整合 Java DL4J 实现智能客服功能
本文主要介绍了如何使用SpringBoot整合JavaDeeplearning4j来构建一个智能客服系统,详细探讨了神经网络选择、数据集格式、技术介绍、Maven依赖、代码示例等内容,为构建高效、便捷、个性化的客户服务提供了理论支持和实践指导2024-10-10
实践讲解SpringBoot自定义初始化Bean+HashMap优化策略模式
本篇讲解了SpringBoot自定义初始化Bean+HashMap优化策略模式,通过实践的方式更通俗易懂,对此不了解的同学跟着小编往下看吧2021-09-09


最新评论