Spring과 mybatis연동하는데 Property 'dataSource' is required 오류가 납니다...

jic5760의 이미지

오늘 이것 때문에 하루 종일 머리가 아프네요...
Spring에 mybatis을 연동하는데 자꾸 Property 'dataSource' is required 이런 오류가 뜹니다.

우션 오류 내용입니다.

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: Property 'dataSource' is required
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
 
java.lang.IllegalArgumentException: Property 'dataSource' is required
	org.springframework.util.Assert.notNull(Assert.java:112)
	org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:292)
	org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:435)
	kr.jclab.studyworld.webserver.Common.getSqlSessionFacotory(Common.java:9)
	kr.jclab.studyworld.webserver.controller.ProcMemberController.reqhandler_app_Join(ProcMemberController.java:39)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	java.lang.reflect.Method.invoke(Unknown Source)
	org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
	org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
	org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
	org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
	org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

설정파일쪽이구요

	<bean id="dataSource" class="org.apache.ibatis.datasource.pooled.PooledDataSource">
		<property name="driver" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost/dbname" />
		<property name="username" value="username" />
		<property name="password" value="password" />
	</bean>
 
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	  <property name="dataSource" ref="dataSource" />
	  <property name="mapperLocations" value="classpath*:....../mapper/*.xml" />
	</bean>

몇번을 확인하고 복붙을 해 봐도... dataSource.. 대소문자 구분도 같습니다.
근데 왜 자꾸 dataSource가 없다고 나올까요?
혹시나 이 xml파일이 적용이 안되는건가?? 하는 생각도 헀지만 분명히 이 xml을 contextConfigLocation에 추가도 해 놨고
driver을 다른 이름으로 수정하면 없는 Class라고 오류도 뜨는걸 봐서 이 xml파일이 적용도 됩니다..

아 MyBatis의 SqlSessionFactory을 사용하는 부분은

SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.getObject();

이렇습니다.
jic5760의 이미지

@Autowired
@Qualifier("sqlSessionFactory")
SqlSessionFactoryBean m_sqlSessionFactoryBean;

이렇게 하니까 되네요....?

http://www.mybatis.org/spring/ko/factorybean.html

대체 여기 나온 소스는 뭔지...ㅠㅠ

하... 오늘 하루를 꼬박 날렸는데 이렇게 간단히 되다니..

역시 검색으로 안될때는 직접 소스를 까봐야 되겠네요..

진작에 mybatis소스를 까볼껄..ㅠㅠ