浏览 3047 次
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-06
最后修改:2009-06-24
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="testAction" class="test.action.Stuts2ActionTest"> <property name="service" ref="templatesService"></property> </bean> <bean id="templatesService" class="test.service.impl.TaoTemplatesServiceImpl"> <property name="dao" ref="templatesDAO" /> </bean> <bean id="templatesDAO" class="test.dao.impl.TaoTemplatesDAOImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="templatesDAOT" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean "> <!-- 为事务代理bean注入事务管理器--> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <!-- 设置事务属性--> <property name="transactionAttributes"> <props> <!-- 所有以add开头的方法,采用required的事务策略,并且只读--> <prop key="add*">PROPAGATION_REQUIRED,readOnly</prop> <!-- 所有以mod开头的方法,采用required的事务策略,并且只读--> <prop key="mod*">PROPAGATION_REQUIRED,readOnly</prop> <!-- 所有以del开头的方法,采用required的事务策略,并且只读--> <prop key="del*">PROPAGATION_REQUIRED,readOnly</prop> <!-- 其他方法,采用required的事务策略 --> <prop key="*">readOnly</prop> </props> </property> <!-- 为事务代理bean设置目标bean --> <property name="target"> <ref local="templatesDAO" /> </property> </bean> <!--定义数据源--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <!-- 定义数据库驱动--> <property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <!-- 定义数据库url--> <property name="url"> <value>jdbc:oracle:thin:@192.168.1.96:1521:yxdb</value> </property> <!-- 定义数据库用户名--> <property name="username"> <value>yxuser</value> </property> <!-- 定义数据库密码--> <property name="password"> <value>yxuser</value> </property> </bean> <!--定义一个hibernate的SessionFactory--> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 定义SessionFactory必须注入DataSource--> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <!--以下用来列出所有的PO映射文件--> <value>test/mapping/Tao_Templates.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle10gDialect </prop> <prop key="hibernate.show_sql">true</prop> <!--此处用来定义hibernate的SessionFactory的属性: 不同数据库连接,启动时选择create,update,create-drop --> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean> <!-- 定义事务管理器,使用适用于Hibernte的事务管理器--> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <!-- HibernateTransactionManager bean需要依赖注入一个SessionFactory bean的引用--> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> </beans>
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-02-06
搞啥,博客当日记也别都发到论坛上来啊,这有啥好讨论的
|
|
返回顶楼 | |
发表时间:2009-02-06
不要这样说,LZ也是在学习么。
|
|
返回顶楼 | |
发表时间:2009-02-06
最近开发中发现spring事务声明式配置的一个问题,如何解决网上和资料中好像都没有提到,现提出来希望有人讨论一下。
举例: 定义一个接口I,公开两个方法,methodA和methodB 然后实现这个接口: methodA方法中只调用methodB,其他什么也不做。 methodB方法中执行两个数据库修改操作,并抛出一个异常E,具体实现采用spring的ibatis机制。 再写一个类 G,添加main方法,main方法中,先调用methodA,再调用methodB。 事务配置的情况: 方案1. methodA不配置事务,methodB配置事务,传播属性是REQUIRE_NEW,遇到异常E回滚。 此时,G的main方法中,调用methodA时,methodB的事务不回滚,日志信息中没有看到事务被创建的信息; 调用methodB时,事务回滚,日志信息中可以看到methodB的事务被创建 方案2. methodA配置事务,传播属性是REQUIRE;methodB配置事务,传播属性是REQUIRE_NEW,均遇到异常E回滚。 此时,执行G的main方法时,调用methodA时,methodA的事务创建,并可以回滚,但methodB的事务仍没有创建。 配置事务的方法注解和xml文件的都试过了,都是上述现象,不知道是何原因。 难道在spring中,声明式事务不能配置到被嵌套使用的方法上么? |
|
返回顶楼 | |