Spring Spring mvc mybatis集成
1.JDK的选择
在官网下载JDK,下载以前版本如图所示:
此时我选择的是JDK为JDK1.6.0_45
2.tomcat版本的选择
进入http://www.apache.org/官网选择Tomcat会显示Which version ? 帮助你选择tomcat的版本如图所示
对应选择你所需要的版本
3.msql版本选择
当你下载下来mysql驱动jar包的时候,进入他们的文档,就可看到,mysql驱动包,支持的版本,如图所示:
4.mybatis的选择
a. mybatis-spring整合jar包的下载,进入mybatis官网会有mybatis的各种版本的released,
当然也有 Mybatis-spring的各种版本的released,当时我是点击mybatis-spring-1.2.0-released(其他版本的点进去可能没有下载资源链接),进去页面如图所示:
点击tracker或者maven central repository都可以进入到整合jar包的下载页面,怎么和Spring整合说明文档在官网很容易找到了
写此文章时候mybatis最新版本为3.3.0 ,在官网下载页面的时候可以看到升级说明(Upgrade notes:)为:
--------------------
b.mybatis配置文件配置
Mapper元素只有一个属性namespace,它有两个作用:一是用于区分不同的mapper(在不同的mapper文件里,子元素的id可以相同,mybatis通过namespace和子元素的id联合区分),
二是与接口关联(应用程序通过接口访问mybatis时,mybatis通过接口的完整名称查找对应的mapper配置,因此namespace的命名务必小心一定要某接口同名)。
一般都会配置一个mybatis-config.xml,这个配置文件配置了,mybatis里边的一些配置信息,例如,module类的别名等等,这个配置文件到最后要配置到
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.j1.soa.resource.item.daoNew.**"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryEx"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.j1.soa.resource.item.daoNew.**"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryEx"/>
</bean>
c. 使用org.mybatis.spring.mapper.MapperScannerConfigurer 和 <context:property-placeholder 的一点小问题
因为MapperScannerConigurer实际是在解析加载bean定义阶段的,这个时候要是设置sqlSessionFactory的话,会导致提前初始化一些类,这个时候,PropertyPlaceholderConfigurer还没来得及替换定义中的变量,
导致把表达式当作字符串复制了,解决的办法如下:
修改为
原理:使用sqlSessionFactoryBeanName注入,不会立即初始化sqlSessionFactory, 所以不会引发提前初始化问题,同时还应注意在配置org.mybatis.spring.SqlSessionFactoryBean
这个Bean时,id不能为sqlSessionFactory,如果为这样的话会导致MapperScannerConigurer在bean定义加载时,加载PropertyPlaceholderConfigurer还没来得及替换定义中的变量
http://www.blogjava.net/ldwblog/archive/2013/07/10/401418.html