환경 기반 Spring 데이터 소스
특정 환경 변수가 있을 때 특정 데이터 소스를 사용하도록 Spring Boot 응용 프로그램을 구성하려고 합니다.예를 들어, 다음과 같은 경우MY_PROD_DATASOURCE
환경 변수가 있습니다. 프로덕션 데이터 소스를 사용하고 싶습니다. 그렇지 않으면 로컬 데이터 소스(동일한 유형)를 사용하고 싶습니다.
Spring reference에서 단일 데이터 소스를 어떻게 선언할 수 있는지 설명하는 내용을 찾았습니다.application.properties
구체적으로 MySQL 데이터 소스는 다음과 같습니다.
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driverClassName=com.mysql.jdbc.Driver
그러나 이 파일에서 데이터 원본 속성을 조건부로 변경할 수 있는 방법을 찾을 수 없습니다.다른 방법이 있습니까?
Spring Boot에서 할 수 있는 일은 다음과 같습니다.
외부화
application.properties
시작 매개 변수로 경로를 추가하여 환경별로 파일을 제공합니다.java -jar your-app.jar --spring.config.location=/path/to/app.properties
스프링 프로파일을 사용합니다.만들다
application-${profile}.properties
각 프로파일에 대해 서로 다른 데이터 원본 속성스프링 프로파일을 사용합니다.
application.properties
에 재산을 투자합니다.application.yaml
여기서 아래와 같이 규약을 사용하여 모든 환경에 대한 속성을 넣을 수 있습니다.spring: profiles: development server: port: 9001 --- spring: profiles: production server: port: 0
환경 변수 사용 및 설정
SPRING_DATASOURCE_URL
,SPRING_DATASOURCE_USERNAME
,SPRING_DATASOURCE_PASSWORD
및 (선택 사항)SPRING_DATASOURCE_DRIVER_CLASS_NAME
.
환경 및 외부 구성에 따라 구성을 변경하는 방법에 대한 Spring Boot 참조 섹션에서 자세히 알아보십시오.
언급URL : https://stackoverflow.com/questions/27233536/spring-datasources-based-on-environment
'programing' 카테고리의 다른 글
프록시 뒤에 있는 도커 이미지를 다운로드할 수 없음 (0) | 2023.07.29 |
---|---|
my.confock에 자신의 [섹션]이 있습니까? (0) | 2023.07.29 |
Spring REST API에서의 Json 스키마 검증 (0) | 2023.07.29 |
모서리가 둥근 편집 텍스트를 만드는 방법은 무엇입니까? (0) | 2023.07.29 |
오라클에서 날짜로부터 월 및 연도 추출 (0) | 2023.07.29 |