[SPRING] 하나의 DataSource로 Spring의 프로그래밍 방식으로 데이터베이스를 변경하는 방법
SPRING하나의 DataSource로 Spring의 프로그래밍 방식으로 데이터베이스를 변경하는 방법
Spring에서 하나의 DataSources를 사용하는 가장 좋은 방법은 무엇인지보고 싶지만 Java 코드 내에서 데이터베이스를 전환 할 수 있습니까? 아래 두 개의 데이터 소스가 있으며 동일한 데이터베이스 서버이지만 다른 데이터베이스로 이동합니다.
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDataSource" />
<property name="url"
value="jdbc:sybase:Tds:10.20.30.40:50/DATABASE_EMS" />
<property name="username" value="userid" />
<property name="password" value="derp" />
</bean>
<bean id="dataSourceMain" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDataSource" />
<property name="url"
value="jdbc:sybase:Tds:10.20.30.40:50/DATABASE" />
<property name="username" value="userid" />
<property name="password" value="derp" />
</bean>
나는 그들 자신의 각각의 bean에 묶여있다. 그러나 나는 나의 유산 코드를보고있다. 그리고 그것은 2 개의 분리 된 bean으로 이것을 구현하기 위해 매우 어색 할 것이다. 필요한 경우 하나의 DataSource를 사용하고 데이터베이스를 전환하는 방법에 대한 아이디어 나 생각이 있습니까?
해결법
-
==============================
1.Spring의 AbstractRoutingDataSource를 확장하고 기존의 데이터 소스를 래핑하여이 작업을 수행 할 수 있습니다. 자세한 내용은이 기사를 참조하십시오. 기사에서 인용 :
Spring의 AbstractRoutingDataSource를 확장하고 기존의 데이터 소스를 래핑하여이 작업을 수행 할 수 있습니다. 자세한 내용은이 기사를 참조하십시오. 기사에서 인용 :
또한 SO에 관한 유사한 질문을보십시오 :
-
==============================
2.당신이 이것을 할 수있는 많은 방법들이 있습니다. 예를 들어, 서비스 클래스 인 DatasourceSelectorService를 만들 수 있으며, 일부 입력 (예 : 구성 파일 / 사용자 입력)에 따라 데이터 소스의 빈을 적절히 선택합니다.
당신이 이것을 할 수있는 많은 방법들이 있습니다. 예를 들어, 서비스 클래스 인 DatasourceSelectorService를 만들 수 있으며, 일부 입력 (예 : 구성 파일 / 사용자 입력)에 따라 데이터 소스의 빈을 적절히 선택합니다.
데이터 소스가 필요한 다른 모든 클래스는이 DatasourceSelectorService를 통해 가져와야합니다.
from https://stackoverflow.com/questions/14330668/how-to-programatically-change-databases-in-spring-with-one-datasource by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring DI applicationContext.xml xsi : schemaLocation은 정확히 어떻게 사용됩니까? (0) | 2019.01.31 |
---|---|
[SPRING] Hibernate Validator, 사용자 정의 ResourceBundleLocator 및 Spring (0) | 2019.01.31 |
[SPRING] JPA의 기준 빌더에서 ignorecase (0) | 2019.01.31 |
[SPRING] jquery를 사용하여 select의 모든 옵션을 어떻게 업데이트합니까? (0) | 2019.01.31 |
[SPRING] 여러 일대 다 관계 ResultSetExtractor (0) | 2019.01.31 |