springboot加载外部xml_springboot加载外部配置文件

本文介绍了如何在SpringBoot中加载war包外部的配置文件,以实现war包更新而不改变配置文件。主要方法是利用SpringBoot的Profile配置,设置`spring.profiles.active`,并将配置文件放在tomcat的`config`目录下,通过修改`catalina.properties`将此目录添加到classpath。此外,还详细讲解了`spring.profiles.active`的工作原理,以及如何根据不同的环境加载不同的配置文件。
摘要由CSDN通过智能技术生成

网上搜集和整理如下(自己已验证过)

1.war包运行在独立tomcat下时,如何加载war包外部配置application.properties,以达到每次更新war包而不用更新配置文件的目的。

SpringBoot配置文件可以放置在多种路径下,不同路径下的配置优先级有所不同。

可放置目录(优先级从高到低)

1.file:./config/ (当前项目路径config目录下);

2.file:./ (当前项目路径下);

3.classpath:/config/ (类路径config目录下);

4.classpath:/ (类路径config下).

优先级由高到底,高优先级的配置会覆盖低优先级的配置;

SpringBoot会从这四个位置全部加载配置文件并互补配置;

想要满足不更新配置文件的做法一般会采用1 和 2,但是这些对于运行在独立tomcat下的war包并不比作用。

我这里采用的是SpringBoot的Profile配置。

在application.properties中增加如下配置:

spring.profiles.active=test1

再在tomcat根目录下新建一个名为config的文件夹,新建一个名为application-test1.properties的配置文件。

完成该步骤后,Profile配置已经完成了。

然后还需要将刚刚新建的config文件夹添加到tomcat的classpath中。

打开tomcat中catalina.properties文件,在common.loader处添加**${catalina.home}/config**,此处的config即之前新建的文件夹名称。

如此,大功告成。程序启动之后,每次配置文件都会从config/application-test1.properties加载。

2.这里详细介绍下spring.profiles.active

默认配置 src/main/resources/application.properties

app.window.width=500

app.window.height=400

指定具体环境的配置

src/main/resources/application-dev.properties

app.window.height=300

src/main/resources/application-prod.properties

app.window.width=600

app.window.height=700

简单的应用

package com.logicbig.example;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

@Component

public class ClientBean {

@Value("${app.window.width}")

private int width;

@Value("${app.window.height}")

private int height;

@PostConstruct

private void postConstruct() {

System.out.printf("width= %s, height= %s%n", width, height);

}

}

package com.logicbig.example;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class ExampleMain {

public static void main(String[] args) {

SpringApplication.run(ExampleMain.class, args);

}

}

运行

$ mvn spring-boot:run

width= 500, height= 400

$ mvn -Dspring.profiles.active=dev spring-boot:run

width= 500, height= 300

$ mvn -Dspring.profiles.active=prod spring-boot:run

width= 600, height= 700

原文:https://www.cnblogs.com/guanbin-529/p/12789557.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值