spring与其它框架的集成(三) spring+ibatis
spring 2008-12-18 19:27:41 阅读122 评论0 字号:大中小
这一章主要介绍一下spring和ibatis的集成
1. applicationCtx.xml中定义如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans
default-autowire="byName"
default-lazy-init="false"
default-dependency-check="none"
>
<!-- spring hibernate start -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:database.properties</value>
</list>
</property>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${hibernate.connection.driver_class}" />
<property name="url" value="${hibernate.connection.url}" />
<property name="username"
value="${hibernate.connection.username}" />
<property name="password"
value="${hibernate.connection.password}" />
<property name="maxActive" value="500" />
<property name="maxIdle" value="50" />
<property name="maxWait" value="5000" />
<property name="defaultAutoCommit" value="true" />
<property name="removeAbandoned" value="true" />
<property name="removeAbandonedTimeout" value="60" />
<property name="minEvictableIdleTimeMillis" value="-1" />
</bean>
<!--与配置hibernate不同的地方 start-->
<!--根据dataSource和configLocation创建一个SqlMapClient-->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="configLocation">
<value>/WEB-INF/sqlMapConfig.xml</value>
</property>
</bean>
<!--根据dataSource和configLocation创建一个SqlMapClient-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
abstract="false" lazy-init="default"
autowire="default" dependency-check="default">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<!--与配置hibernate不同的地方 end-->
<!-- spring hibernate end -->
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<props>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
</beans>
3. 在database.properties中配置:
hibernate.connection.username=postgres
hibernate.connection.password=postgres
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
hibernate.dialect.ant=jp.co.softbrain.bpm2.tools.hbm2ddl.dialect.PostgreSQLDialect
hibernate.connection.url=jdbc\:postgresql\://localhost/HibernateTest?useUnicode\=true&characterEncoding\=utf-8
hibernate.connection.driver_class=org.postgresql.Driver
database.name=postgres
database.schema=public
database.type=postgresql
以供dataSource中调用,dataSource是配置数据源。
4. transactionManager集成hibernate。
5. txProxyTemplate配置spring事务
6. 配置service使用代理
<bean id="loginService" parent="txProxyTemplate">
<property name="target">
<bean class="servletTest.service.impl.LoginServiceImpl" autowire="byName"/>
</property>
</bean>
这样loginService就有事务了
如果不要事务:
<bean id="loginService" class="servletTest.service.impl.LoginServiceImpl" autowire="byName"/>
7. 配置dao
<bean id="loginDao" class="servletTest.dao.impl.LoginDaoImpl" autowire="byName" />
8. sqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings
lazyLoadingEnabled="true"
useStatementNamespaces="true" />
<sqlMap resource="/ibatis/home/User.ibatis.xml"/>
</sqlMapConfig>
9. User.ibatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<typeAlias alias="User" type="servletTest.model.User"/>
<resultMap id="User"
class="servletTest.model.User">
<result property="userId" column="user_id" />
<result property="name" column="name" />
<result property="sex" column="sex" />
<result property="age" column="age" />
</resultMap>
<select id="selectAllUsers" resultClass="User">
select * from usera
</select>
<select id="selectUser" resultClass="User" parameterClass="string">
select * from usera where user_id=#id#
</select>
<delete id="deleteUser" parameterClass="string">
delete from usera where user_id=#id#
</delete>
<insert id="saveUser" parameterClass="User">
insert into usera(user_id,name,sex,age) values(#userId#,#name#,#sex#,#age#)
</insert>
</sqlMap>
ok, 到这里就完成了spring与ibatis的整合了。不难发现ibatis与hibernate在与spring集成时。只是在 applicationCtx.xml中 区别定 义了自己的bean以及加载的配置文件。其它部分不需要任何改动,如 service,dao,controller等的配置。这很好的说明了 spring可其它框架集成的可插拔性。
分享到:
相关推荐
struts+spring+ibatis框架集成.pdf
spring+ibatis集成开发文档,集成框架。
但正如Spring A Developer's Notebook作者Bruce Tate 和Justin Gehtland所说的那样,与其他的OR框架相比,iBATIS独辟蹊径“iBATIS不是试图从根本上掩盖SQL,实际上,它是在拥抱SQL。” <br>但别犯愁:SQL本身具备...
spring3.0加ibatis , 实例, 公司用的框架, 空项目 ,很稳定
如果是入门学习,或者想看看struts+spring+ibatis怎么集成在一起,可以下载看看。已经通过测试。jar包全,需要本地装mysql,或者修改jdbc配置文件
SSI(Struts2 + Spring + IBatis)框架集成。
axis2+spring+ibatis整合的一个项目,含webservice文件传输
利用ssi框架集成增删改查及存储过程处理,利用Junit测试框架进行单元测试。非常全面的例子。
添加了log4j 博文链接:https://xiao9.iteye.com/blog/952231
此项目继承了Spring Struts2 Ibatis CXF,项目里面含有数据执行文件!具体请参见项目的readme.txt文件,里面详细描述需要对应框架支持需要的jar包。请注意,如果选取的版本不一致,所需要的jar可能不一样。
用struts2+ibatis+spring2集成做了一个用户注册和登陆的例子,例子虽然简单,但是里面包含了这三个非常优秀的框架的精髓,希望大家指点和纠正。。。。。
一个spring+struts2+ibatis框架集成的例子,能够运行
Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3内个框架的集成
iBATIS似乎已远离众说纷纭的...但正如Spring: A Developer's Notebook作者Bruce Tate和Justin Gehtland所说的那样,与其他的OR框架相比,iBATIS独辟蹊径:“iBATIS不是试图从根本上掩盖SQL,实际上,它是在拥抱SQL。”
代码中展示了spring整合ibatis框架,使其更好地发挥作用,适合了解过spring的初学者又继续想要学习ibatis框架的同学。
加快了开发速度,但是也有一些不足之处,比如由于三种框架的配置文件较多,也给我们带来了一些不便,特别是对于较小的应用来说更是如此,本文主要是对Strtus2、Spring、iBatis三个开源框架进行一个集成
JpetStore 4.0是ibatis的最新示例程序,基于Struts MVC框架(注:非传统Struts开发模式),以ibatis作为持久化层。该示例程序设计优雅,层次清晰,可以学习以及作为一个高效率的编程模型参考。本文是在其基础上,...
通用信息系统框架诞生的目的,是帮助企业开发信息系统之初快速搭建起系统基本框架,... 通用框架(包括权限管理、功能导航),采用两种模式,一是集成Flex+Spring+ibatis开源框架,二是集成Extjs+Spring+ibatis框架。