골드만삭스
1k
2015-09-01 14:23:55
5
4086

spring4 + mybatis 3.3 + mybatis-spring1.2.3 다중 datasource 연동 실패 관련


안녕하세요.

2일전에 질문을 올렷었는대여.

org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.apache.ibatis.session.SqlSessionFactory] is defined: expected single matching bean but found 2


이 오류가 핵심이내여.

DAO를 사용하지 않고 mapper 와 service 그리고 서비스를 구현한 serviceImple을 이용한 설정인대.

mapper에는 @Repository(value="testMapper")


그리고 service에서 

@Resource(name = "testMapper")

testMapper testMappers; 이부분을 추가해 주었습니다.


<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="basePackage" value="com.okjsp.aron.mapper" />

</bean>


이부분을 추가해 주었습니다.

결론은 mapper에서 사용할 SqlSessionFactory 가 2개가 나온다는 야그인대.

다른 설정 파일을 바꿔도 에러는 위와 같내여.

혹시 해결하신 분 계신가여?


답변 부탁드립니다. 감사합니다.




1
1
  • 답변 5

  • OKIHOUSE
    353
    2015-09-01 15:32:59

    같은 조건은 아닙니다만 참고해서 해보세요


            <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource">
    		<property name="driverClassName" value="${jdbc.driver}" />
    		<property name="jdbcUrl" value="${jdbc.url}" />
    		<property name="username" value="${jdbc.username}" />
    		<property name="password" value="${jdbc.password}" />
    	</bean>
    
    	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    		<property name="configLocation" value="classpath:spring/sqlMap-config.xml" />
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    
    	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
    	    <constructor-arg index="0" ref="sqlSessionFactory" />
    	</bean>
    
    	
    	<bean id="sms" class="com.zaxxer.hikari.HikariDataSource">
    		<property name="driverClassName" value="${sms.driver}" />
    		<property name="jdbcUrl" value="${sms.url}" />
    		<property name="username" value="${sms.username}" />
    		<property name="password" value="${sms.password}" />
    	</bean>
    
    	<bean id="smsSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    		<property name="configLocation" value="classpath:spring/sqlMap-config.xml" />
    		<property name="dataSource" ref="sms" />
    	</bean>
    
    	<bean id="smsSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
    	    <constructor-arg index="0" ref="smsSessionFactory" />
    	</bean>

    > sqlSessionTemplete Injection

            @Autowired
    	private SqlSessionTemplate sqlSessionTemplate ;


    > smsSessionTemplete Injection

            @Autowired
    
    	private SqlSessionTemplate smsSessionTemplate;


    1
  • 골드만삭스
    1k
    2015-09-01 16:20:05

    //OKIHOUSE  감사드립니다.

    방금 문제 해결 완료 하였습니다.

    해당 문제 관련하여 정리하여 올리도록 하겠습니다. 

    모두 감사드립니다. 


    0
  • cozyhyunny
    616
    2015-09-03 13:30:18
    해결되었다니 다행이네요 ㅎㅎ
    0
  • 골드만삭스
    1k
    2015-09-03 15:11:12

    내 모두모두 감사합니다.

    제가 곧 정리해서 글 올리도록 하겠습니다. ^^

    0
  • 골드만삭스
    1k
    2015-09-06 00:10:05

    http://okky.kr/article/292353 여기에 공유하였습니다.

    감사합니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.