SpringBoot 加载jar外部yml配置文件

https://www.cnblogs.com/saul-zc/p/9719457.html
https://blog.csdn.net/controller_Lw/article/details/114266609

运行Jar包的配置文件可以是内部也可以是外置的配置文件:application.yml ,外置配置文件可以放在服务器上也已可放在远程的git仓库内;

1 、运行命令 —— j a v a − j a r x x x x x x x . j a r \color{red}{ java -jar xxxxxxx.jar} javajarxxxxxxx.jar

1.1 可以 在 当 前 J a r 文 件 目 录 建 c o n f i g 同 级 目 录 \color{red}{在当前Jar文件目录 建config同级目录} Jarconfig,这个config同级目录放入 application.yml
1.2 也可以 在 当 前 J a r 文 件 同 级 目 录 \color{red}{在当前Jar文件同级目录} Jar 直接放入application.yml

运行命令 —— java -jar xxxxxxx.jar -Dspring.config.location=application-test.yml --spring.profiles.active=test 
         -Dspring.config.location 	指定读取哪个配置文件  加D是mave命令
         -spring.config.location			不加D是sping命令
         -spring.profiles.active 	指定读取什么后缀的配置文件
如果启动的时候--spring.profiles.active=test 指定了配置文件后缀,启动的时候 指定的配置文件后缀一致,否则就读取不到要使用的配置文件,导致启动失败。

实例:十堰调解

nohup java -jar cases-shiyan.jar --spring.config.location=/home/shiyan/conf/application.yml >> ./logs/cases-shiyan.log &
2、 运行命令 —— j a v a − j a r d e m o . j a r − − s p r i n g . c o n f i g . l o c a t i o n = 路 径 ( a p p l i c a t i o n . y m l ) \color{red}{ java -jar demo.jar --spring.config.location=路径(application.yml)} javajardemo.jarspring.config.location=application.yml

PS:

如果用命令改变application.yml中某一个属性,修改 –属性=****

如改变端口: java -jar demo.jar –server.port=8686

1、使用本地外置配置文件:
nohup java
-Dspring.config.location=/data/config/application-xxx.yml
-jar system-xxx-v1.0.5.jar
–spring.profiles.active=xxx
> ./logs/xxx.log &

nohup java \
-Dspring.config.location=/data/config/application-sms.yml \
-jar qingyang-sms-v1.0.5.jar \
--spring.profiles.active=case  \
> ./logs/case.log &

nohup java  \
-Dspring.config.location=/data/qingyang/config/application-case.yml \
-jar select-cases-v0.0.5-11.jar \
--spring.profiles.active=sms  \
> ./logs/sms.log &

如果–spring.profiles.active=xxx放在前边保存,放在后边试试,如下:(原因:内置有配置文件,外置添加配置文件,需要后边–spring.profiles.active=xxx 来指定使用那个配置)

2、使用本地配置仓库外置配置文件:
nohup java
-jar xxxxx.jar
–spring.profiles.active=xxx
> ./logs/xxx.log &

nohup java\
-jar select-cases-v0.0.5-13.jar \
--spring.profiles.active=case \
> ./logs/case.log  &

3、使用git仓库的外置配置文件:
1、config.server 链接git仓库获取启动配置文件

nohup  java  \
-XX:MetaspaceSize=128M \
-XX:MaxMetaspaceSize=128M \
-Xms1024m -Xmx1024m  \
-Dspring.cloud.nacos.server-addr=127.0.0.1:8848 \
-Dspring.cloud.config.server.git.uri=https://gitee.com/xxxxxx/portal.git  \
-Dspring.cloud.config.server.git.username=188000000 \
-Dspring.cloud.config.server.git.password=gir-passsword \
-jar   config-server.jar  \
> ./logs/config.log &

2、jar包获取启动配置文件

nohup java  \
-XX:MetaspaceSize=128M \
-XX:MaxMetaspaceSize=128M  \
-Xms1024m -Xmx1024m  \
-Dspring.cloud.config.label=prod_qingyang  \
-Dspring.cloud.config.profile=qingyang \
-Dspring.cloud.nacos.server \
-addr=127.0.0.1:8848 \
-jar fanyu-flow.jar \
> ./logs/flow.log &
在Spring Boot应用中,如果你想要打包成WAR并从外部yml配置文件加载配置,你可以按照以下步骤操作: 1. **自定义配置类**[^1]: - 创建一个实现了`org.springframework.boot.context.config.ConfigurationPropertiesBindingPostProcessor`接口的类。这个接口用于处理配置属性绑定到Java对象。 ```java @Configuration public class YamlConfigProcessor implements ConfigurationPropertiesBindingPostProcessor { private final YamlPropertiesFactoryBean factoryBean = new YamlPropertiesFactoryBean(); @Override public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { factoryBean.setResources(new ClassPathResource("config.yml")); // 指定yml文件的位置 factoryBean.load(); environment.getPropertySources().addFirst(factoryBean.getObject()); } } ``` 2. **配置POM.xml**[^2]: - 在构建工具如Maven或Gradle中,确保你的`pom.xml`或`build.gradle`配置了正确的插件和依赖,以便打包成WAR文件。 Maven示例: ```xml <build> ... <plugins> <!-- Spring Boot war packaging --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> ... </build> ``` 3. **运行应用**: - 使用`mvn clean install package` 或 `gradle build fatJar`命令构建应用,并生成WAR文件。 4. **部署**: - 将生成的WAR文件部署到Tomcat或其他Web服务器上,通常路径会类似`/webapps/your-app-name.war`。 当你部署好应用后,Spring Boot会在启动时自动读取指定位置的`config.yml`文件中的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值