Spring boot 통일 설정 아이디어 만 들 기
한 곳 에 여러 개의 설정 을 통일 적 으로 설정 하 는 것 이 무엇 입 니까? 장점, 데이터베이스 주 소 를 바 꾸 려 면 여러 개의 설정 파일 을 수정 하고 여기저기 서 재 부팅 해 야 합 니 다. 상당히 번 거 롭 습 니 다. 이 방법 으로 여러 개의 spring boot 를 하나의 Yml 파일 에 공통 적 으로 설정 할 수 있 습 니 다. 쓸데없는 말 은 하지 않 겠 습 니 다. 다음은 실험 을 시작 하 겠 습 니 다.
1. Environment PostProcessor 인터페이스 와 Ordered 를 실현 합 니 다. Ordered 인 터 페 이 스 는 지정 한 시작 단계 입 니 다. Environment PostProcessor 인 터 페 이 스 는 지정 한 시작 할 때 일 을 합 니 다. 이 종 류 는 다음 과 같 습 니 다.
package com.hks.config;
import java.io.IOException;
import org.slf4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.boot.env.YamlPropertySourceLoader;
import org.springframework.core.Ordered;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.ClassPathResource;
public class LoadPropertiesConfig implements EnvironmentPostProcessor, Ordered {
protected static Logger logger = org.slf4j.LoggerFactory.getLogger("LoadPropertiesConfig") ;
@Override
public int getOrder() {
return ConfigFileApplicationListener.DEFAULT_ORDER + 1 ;
}
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
try {
YamlPropertySourceLoader loader = new YamlPropertySourceLoader();
PropertySource> load = loader.load("mainyaml",new ClassPathResource("application.yml") , null);
environment.getPropertySources().addLast( load );
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. maven 프로젝트, 파일 생 성 src / main / resources / META - INF / spring. factories, 반드시 이 경로 라면 다른 것 은 안 됩 니 다. 파일 내용 은 다음 과 같 습 니 다.
org.springframework.boot.env.EnvironmentPostProcessor=com.hks.config.LoadPropertiesConfig
이렇게 하면 큰 성 과 를 거 둘 수 있 습 니 다. 시작 클래스 를 써 서 시작 이 성 공 했 는 지 확인 할 수 있 습 니 다.
package com.hks.epc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication( scanBasePackages = "com.hks")
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args) ;
}
}
이 방법 에 따라 각 항목 의 application. yaml 파일 에 불 러 올 프로필 을 설정 할 수 있 습 니 다. LoadProperties Config 에서 이 설정 을 가 져 오고 해당 하 는 프로필 을 프로젝트 에 불 러 올 수 있 습 니 다. 누 군가 이 를 실현 하 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.