SpringBoot 加载jar外部yml配置文件

开发与生产环境的不同,有可能对配置文件属性要求不同

此时需要将application.yml文件放在可运行Jar的外部

1.    运行命令 —— java -jar xxxxxxx.jar --spring.profiles.active=test -Dspring.config.location=application-test.yml

             –spring.profiles.active 指定读取什么后缀的配置文件
             -Dspring.config.location 指定读取哪个配置文件

             如果打包的时候我 active指定了配置文件后缀,然后启动的时候 指定的配置文件后缀和这个不一致就读取不到所以要这样子启动

外部新建立一个属于自己的YML文件

2.    运行命令 —— java -jar demo.jar --spring.config.location=路径(application.yml)

PS:

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

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

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、付费专栏及课程。

余额充值