Spring Boot 애플리케이션의 구성 관리
합리적으로 유연하고 유지 관리 가능한 솔루션을 제공하는 가장 일반적인 간단한 방법이 있습니다. 가능한 모든 옵션을 너무 깊이 탐색하지 않고 짧고 빠르게 읽을 수 있도록 아래에 간략하게 설명하겠습니다.
1. @Value를 사용하여 구성 요소에 환경 변수 삽입
구성은 Spring 구성 요소에 의해 주입되지만 @Value로 주석을 달아야 합니다.
@Component
class MyComponent {
@Value("${myappname.weatherapi.url}")
private weatherApiUrl
// ...
}
또한
myappname.weatherapi.url
는 application.properties
(또는 application.yaml
)에서 정의되어야 합니다.myappname.weatherapi.url=http://weather.com/api
1.1 테스트에서 재정의
테스트에서 쉽게 재정의할 수 있습니다.
테스트 내에서 이 @Value를 다시 지정하여:
@SpringBootTest(properties = {
"myappname.weatherapi.url=http://localhost:8888"
})
class MyComponentTest {
@Autowired
private MyComponent myComponent;
// ..
}
2. application.properties에 환경 변수 삽입
환경에 정의된 변수가 있는 경우
export WEATHER_URL=http://wiremock:8000
Spring Boot 애플리케이션을 실행할 때,
다음 구문을 사용하여
application.properties
에 주입할 수 있습니다.server.port=${PORT:8020}
myappname.wetherapi.url=${WEATHER_URL:http://localhost:8888}
이제 Spring Boot 애플리케이션을 실행할 때
환경에 PORT 및 WEATHER_APPLICATION이 설정되어 있으면
그러면 환경 변수가 사용됩니다.
하지만 애플리케이션을 실행하는 환경에 그것들이 없다면,
그런 다음 기본값(8020 및 localhost)으로 돌아갑니다.
3. application.properties 파일의 대체 위치
기본적으로
application.properties
가 사용됩니다. 그러나 Spring Boot 프로파일이 설정되면 다음 패턴의 파일 이름을 사용합니다: application-{profilename}.properties
.다른 프로필로 Spring Boot 앱을 실행하려면 다음과 같이 "-D"매개변수를 전달해야 합니다.
java -jar -Dspring-boot.profile=local my-spring-boot-app.jar
이것은
application-local.properties
를 사용합니다.3.1 테스트용으로만 재정의
테스트 클래스에서 파일
aplication-test.properties
을 사용하려면 다음을 사용하십시오.@SpringBootTest
@ActiveProfiles("test")
class MyComponentTest {
// ...
}
애플리케이션 우회(나쁜 관행)
구성 요소는
SystemProperties
클래스를 사용하여 환경 변수에 직접 액세스할 수 있습니다.이렇게 하면
application.properties
에 아무 것도 포함할 필요가 없습니다.그러나 가장 좋은 방법은 속성 파일을 사용하는 것입니다.
이렇게 하면 이 서비스에 대해 어떤 매개변수를 조정할 수 있는지 명확해집니다. 그리고 속성 파일이 환경 변수를 주입한다는 점을 감안할 때 애플리케이션은 진정으로 이식 가능합니다.
Java 코드는 값이 어떻게 주입되는지 신경쓰지 않기 때문입니다. 따라서 이를 통해 필요한 경우 Spring에서 마이그레이션하거나 환경 사용에서 마이그레이션할 수도 있습니다.
5. 12개의 팩터 앱 방법론 준수
여러 속성 파일을 사용하는 것은 언급할 가치가 있습니다.
각 배포 환경에 대해 유혹적으로 보일 수 있지만 반드시 최선의 아이디어는 아닐 수 있습니다. 추론은
12 Factor 방법론에 매우 명확하게 정의되어 있습니다. 이렇게 하면 애플리케이션이 플랫폼에 구애받지 않고 코드를 변경하지 않고도 다양한 환경(컨테이너 포함)에 쉽게 배포할 수 있습니다.
Spring Boot 애플리케이션에서 구성을 관리하는 방법은 수천 가지가 있지만 알아야 할 것은
다음의 간단한 5단계를 따라 애플리케이션이
유연하고 확장 가능하며 클라우드를 지원합니다.
Reference
이 문제에 관하여(Spring Boot 애플리케이션의 구성 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/luke10x/config-management-in-spring-boot-applications-27ga텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)