스프링 강의를 보고 따라하며 제 프로젝트를 진행 중 생긴 질문입니다. 저는 다중 DB 의 연결이 필요해서 작업 중 입니다. 05 데이터베이스 연동하기 부분에서 mybatis-config.xml 을 생성했는데 configuration 태그 안에 내용들은 주석으로 되어 있습니다. 아무래도 2개 혹은 다중 DB 연결시 이 안에 추가 설정을 하게 되고 또 root-context.xml에 추가 설정을 해줘야 될 것 같은데, root-context.xml 에 보니 프로퍼티가 설정 되어 있고(jdbc.properties) 이걸 통해서 정보를 불러 오는것 같습니다. 이걸 mybatis-config.xml 로 연결해서 구분하게 하는 설정이 필요할 것 같은데 어떻게 하면 되는지 궁금합니다. root-context.xml ``` <!-- Properties --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations" value="classpath:/jdbc.properties"></property> <property name="fileEncoding" value="UTF-8"></property> </bean> <!-- MySQL A DB --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"></property> <property name="url" value="${jdbc.urlA}"></property> <property name="username" value="${jdbc.usernameA}"></property> <property name="password" value="${jdbc.passwordA}"></property> </bean> <!-- MyBatis-Spring- A DB --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <property name="dataSource" ref="dataSource"></property> </bean> <!-- MySQL B DB --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"></property> <property name="url" value="${jdbc.urlB}"></property> <property name="username" value="${jdbc.usernameB"></property> <property name="password" value="${jdbc.passwordB}"></property> </bean> <!-- MyBatis-Spring- B DB --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <property name="dataSource" ref="dataSource"></property> </bean> ``` mybatis-config.xml ``` <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="urlA" value="jdbc:mysql://ip:3306/ADB"/> <property name="usernameA" value="A"/> <property name="passwordA" value="A"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/A.xml"></mapper> </mappers> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="urlA" value="jdbc:mysql://B:3306/BDB"/> <property name="usernameA" value="B"/> <property name="passwordA" value="B"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/B.xml"></mapper> </mappers> ``` 궁극의 목적은 IP가 다른 A 디비와 B 디비의 설정을 원하는 것입니다. 쓰고보니 쿼리 들어갈때는 또 어떻게 될런지 알아봐야겠네요...
# 스프링 다중 DB 연동 자세하게 작성을 해드리고 싶으나.. 지금 당장 시간이 없는관계로 링크 남겨드릴께요 + https://www.lesstif.com/pages/viewpage.action?pageId=20774954