总结Struts2+Spring+MyBaties整合
2014-01-07 11:30 _cha1R 阅读(908) 评论(0) 编辑 收藏 举报本文适合有过SSH配置经验的开发者参考。
由于项目需要用到MyBaties,所以最近在学习这。发现Struts+Spring+MyBaties整合起来跟以前使用的SSH整合有几分相似。
1、MyBaties配置文件仅剩2项配置
<configuration> <typeAliases> <typeAlias alias="user" type="com.pdsu.edu.domain.User"/> </typeAliases> <mappers> <mapper resource="com/pdsu/edu/domain/sqlMappers/user.xml" /> </mappers> </configuration>
而之前学习MyBaties时,数据库项的配置是配在MyBaties配置文件里面的,现在交给了Spring来管理数据项配置
<!-- 数据库配置文件位置 --> <context:property-placeholder location="classpath:jdbc.properties" />
而jdbc.properties则是分出来的配置,因为我们说过数据项的配置最好是分出来的,这点跟之前学习MyBaties一样,不过这次是在beans.xml引用了这个数据库配置文件。
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/operationLog
jdbc.username=root
jdbc.password=root
jdbc.maxActive = 2
jdbc.maxIdle =5
jdbc.minIdle=1
jdbc.initialSize =3
jdbc.maxWait =3000
2、SqlSession的不再由mybaties的SqlSessionFactory提供,而交给了Spring管理。
在Spring中,SqlSessionFactory被org.mybatis.spring.SqlSessionFactoryBean代替,我们可以调用它的getObject()方法获得SqlSessionFactroy实例从而得到SqlSession。
<!-- 配置mybitasSqlSessionFactoryBean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis.xml"></property> </bean>
配置SqlSessionFactoryBean可以指定两个属性,一个是configLoaction,把它指向MyBaties的配置文件即可。还有一个是dataSource,配置数据源。配置完毕后我们就可以使用SqlSessionFactoryBean。
3、接口方面,之前学习MyBaties时是写了Mapper接口来映射方法。这里不再使用,而是由Spring提供的一个模板类org.mybatis.spring.SqlSessionTemplate完成接口,这个模板类实现了org.apache.ibatis.session.SqlSession类,所以它拥有SqlSession的所有方法,我们可以把它当成MyBaties的SqlSession使用。
使用它之前,需要配置一下,把之前的SqlSessionFactoryBean注入去即可
<!-- 配置SqlSessionTemplate --> <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean>
struts2配置、web.xml、Spring事务管理则跟SSH的配置一致。