4.SpringMVC和Mybatis的整合
在做这个项目之前,我们的前提条件是:你已经有一个能运行的SpringMVC的最简单的项目了。请同学们参考我的SpringMVC那章。做这个项目关键在于导包,请参考下图:
SpringMVC和Mybatis的整合的工作原理
org.mybatis.spring.mapper.MapperScannerConfigurer会自动往Spring容器注入com.mapper目录下所有的Mapper比如RegisterMapper(这就是为什么在Controller当中你能用@Resource注解找到RegisterMapper的实例的原因),条件是org.mybatis.spring.SqlSessionFactoryBean类的实例已经在Spring容器中(实际上id是多少都无所谓,这里就是sqlSessionFactoryqqqq,因为反正也没有人调用它,只要有实例在容器中就行),有了它,MapperScannerConfigurer才能正常工作,因为SqlSessionFactoryBean的一个属性是dataSource,它掌握着连接数据库的密码等。
例 1.4
<html>
<head>
<title>Spring 3.0</title>
</head>
<body>
<a href="helloa.do">Say Hello</a>
</body>
</html>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName"
value="com.mysql.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://localhost:3306/test"></property>
<property name="username"
value="root"></property>
<property name="password"
value="1234"></property>
</bean>
<!-- 通过扫描的模式,扫描目录在com.mapper目录下,把所有mapper都注入到Spring当中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.mapper" />
</bean>
<!-- 没有以下的话,所有的mapper都不能创建,服务器启动过程报错-->
更多请见:http://www.mark-to-win.com/tutorial/frame_Mybatis_SpringMVCMybatis.html