[SPRING] Spring Boot로 어떻게 다른 데이터베이스 설정을 제공 할 수 있습니까?
SPRINGSpring Boot로 어떻게 다른 데이터베이스 설정을 제공 할 수 있습니까?
내가 현재보고있는대로 5 가지 가능한 데이터베이스 프로파일이 있습니다.
현재 나는 응용 프로그램을 실행하기 위해 구성된 postgres를 가지고 있고 h2는 java / resources 대 test / resources에 다른 application.properties를 가지고 테스트하도록 구성되어 있습니다.
이 시나리오에서 데이터베이스 연결 정보를 변경하는 가장 간단한 방법은 무엇입니까?
해결법
-
==============================
1.M. Deinum이 자신의 의견에서 언급했듯이이 작업을 수행하는 가장 간단한 방법은 프로필 관련 구성을 사용하는 것입니다.
M. Deinum이 자신의 의견에서 언급했듯이이 작업을 수행하는 가장 간단한 방법은 프로필 관련 구성을 사용하는 것입니다.
Spring Boot는 하나의 공통 설정 파일 (application.properties)을 가지고, 각각 다른 프로파일 (application - $ {profile} .properties)에 특정한 다른 여러개의 파일을 가질 수있게합니다.
예를 들면 :
예를 들어 응용 프로그램이 "ci"프로파일로 실행되는 경우 기본 구성 파일과 ci 구성 파일 (ci 프로파일에 대한 데이터 소스 구성 등록 정보 포함)이로드됩니다.
프로파일을 전환하려면 다음 옵션 중 하나를 사용할 수 있습니다.
유닛 테스트의 경우 테스트 클래스에서 @ActiveProfiles ( "test") 주석을 사용하여 Spring에 단위 테스트가 테스트 프로파일과 함께 실행되어야 함을 알릴 수 있습니다.
또한 프로덕션 데이터베이스 자격 증명을 소스 코드와 함께 저장하지 않으려면 프로덕션 환경에서 응용 프로그램을 배포 할 때 외부 구성 파일을 지정할 수 있습니다.
-
==============================
2.위의 시나리오에 대한 간단한 답은 하나의 application.yml 파일을 만들고 필요에 따라 다른 프로파일을 만들 때 (-dev, -ci 및 -prod)에 따라 DB 정보를 제공하는 것입니다.
위의 시나리오에 대한 간단한 답은 하나의 application.yml 파일을 만들고 필요에 따라 다른 프로파일을 만들 때 (-dev, -ci 및 -prod)에 따라 DB 정보를 제공하는 것입니다.
샘플보기 :
spring: profiles.active: development --- spring: profiles: development datasource: db-person: url: jdbc:oracle:thin:@db_person_dev username: username password: pwd driver-class-name: oracle.jdbc.OracleDriver test-on-borrow: true validation-query: SELECT 1 FROM dual db-contract: url: jdbc:oracle:thin:@db_contract_dev username: username password: pwd driver-class-name: oracle.jdbc.OracleDriver test-on-borrow: true validation-query: SELECT 1 FROM dual --- spring: profiles: test datasource: db-person: url: jdbc:oracle:thin:@db_person_test username: username password: pwd driver-class-name: oracle.jdbc.OracleDriver test-on-borrow: true validation-query: SELECT 1 FROM dual db-contract: url: jdbc:oracle:thin:@db_contract_test username: username password: pwd driver-class-name: oracle.jdbc.OracleDriver test-on-borrow: true validation-query: SELECT 1 FROM dual --- spring: profiles: production datasource: db-person: url: jdbc:oracle:thin:@db_person_prod username: username password: pwd driver-class-name: oracle.jdbc.OracleDriver test-on-borrow: true validation-query: SELECT 1 FROM dual db-contract: url: jdbc:oracle:thin:@db_contract_prod username: username password: pwd driver-class-name: oracle.jdbc.OracleDriver test-on-borrow: true validation-query: SELECT 1 FROM dual ---
더 많은 이해와 간단한 예를 보려면이 링크를 참조하십시오.
from https://stackoverflow.com/questions/28007686/how-can-i-provide-different-database-configurations-with-spring-boot by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Sun JSTL taglib 선언이 "태그 라이브러리 설명자를 찾을 수 없습니다"와 함께 실패합니다 [duplicate] (0) | 2019.01.10 |
---|---|
[SPRING] <mvc : default-servlet-handler />의 필요성과 사용법은 무엇입니까? (0) | 2019.01.10 |
[SPRING] 스프링 보안 OAuth2는 보안을 결정합니까? (0) | 2019.01.10 |
[SPRING] 2-legged (클라이언트 자격 증명) OAuth2 서버에 대한 스프링 보안 컨텍스트 설정 (0) | 2019.01.09 |
[SPRING] Spring의 WebApproot (0) | 2019.01.09 |