xml配置如下
<?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:jee="http://www.springframework.org/schema/jee"
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.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<aop:config proxy-target-class="true">
<aop:advisor pointcut="execution(* com.ctvit.test.struts.TestSerivce.*(..))" advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*"/>
<tx:method name="test*"/>
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
<bean id="jotmJta" class="org.springframework.transaction.jta.JotmFactoryBean" />
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction" ref="jotmJta" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="ds1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@192.168.168.171:1521:cctveip" />
<property name="username" value="a" />
<property name="password" value="a" />
</bean>
<bean id="sessionFactory1"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="ds1" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/ctvit/test/domain/YbTest1.hbm.xml</value>
<value>com/ctvit/test/domain/YbTest2.hbm.xml</value>
</list>
</property>
</bean>
<bean id="testSerivce" class="com.ctvit.test.struts.TestSerivce">
<property name="tes1Dao" ref="YbTest1DAO"></property>
<property name="tes2Dao" ref="YbTest2DAO"></property>
</bean>
<bean id="YbTest1DAO" class="com.ctvit.test.domain.YbTest1DAO">
<property name="sessionFactory">
<ref bean="sessionFactory1" />
</property>
</bean>
<bean id="YbTest2DAO" class="com.ctvit.test.domain.YbTest2DAO">
<property name="sessionFactory">
<ref bean="sessionFactory1" />
</property>
</bean>
</beans>
java 测试代码如下
import org.springframework.context.ApplicationContext;
import org.springframework.test.AbstractDependencyInjectionSpringContextTests;
import com.ctvit.test.struts.TestSerivce;
public class TestXa extends AbstractDependencyInjectionSpringContextTests {
protected String[] getConfigLocations() {
return new String[] { "classpath:applicationContext.xml" };
}
public void testJOTM() {
ApplicationContext ctx = this.getApplicationContext();
TestSerivce testSerivce = (TestSerivce)ctx.getBean("testSerivce");
try {
testSerivce.saveTest();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
本文将深入探讨如何使用JOTM(Java Open Transaction Manager)来实现这样的功能,尤其关注在多数据源环境下的事务协调。 JOTM是Java世界里一个开源的事务管理器,遵循JTA(Java Transaction API)规范,提供了...
3. 创建JOTM事务管理器:在Spring配置中,定义一个`AtomikosTransactionManager`,它是Spring与JOTM交互的桥梁。你需要设置JOTM的相关属性,如事务超时时间、事务日志路径等。 4. 配置事务策略:在服务层或者DAO层...
2. **配置JNDI**:在Tomcat的`server.xml`文件中添加一个全局JNDI资源,定义JOTM事务管理器。 3. **Spring配置**:在Spring的配置文件中,使用`jee:jta-data-source`或`jee:resource-ref`元素来引用之前创建的JNDI...
- **恢复能力**:JOTM具有事务恢复功能,能够处理事务在进行中的系统崩溃或网络问题。 - **性能优化**:JOTM设计上考虑了性能,比如批处理支持和缓存策略,以减少系统开销。 - **兼容性**:JOTM支持各种JCA 1.5...
然后,在Spring的配置文件中定义JOTM的事务管理器 bean,例如: ```xml <bean id="jotmTransactionManager" class="org.objectweb.jotm.CurrentTransactionManager" init-method="init"> ...
- 配置JOTM事务管理器,通过`UserTransaction`接口进行事务的开始、提交和回滚。 - 使用`PlatformTransactionManager`接口配置Spring的声明式事务管理,设置事务传播属性、隔离级别和超时时间。 4. **iBatis配置*...
源码分析可以帮助开发者了解如何在实际项目中正确配置和使用JOTM,以及如何处理复杂的事务场景。以下是一些关于JOTM 2.0源码包的关键知识点: 1. **JTA标准理解**:首先,你需要了解JTA的基本概念,包括全局事务...
2. **配置JOTM**:创建一个配置文件,例如jotm.properties,来设置JOTM的相关参数,如事务超时时间、日志路径等。然后在Spring的配置文件中,通过`<bean>`标签定义一个`UserTransaction`和`...
文档的全面性使得无论是初学者还是经验丰富的开发者都能从中受益,了解如何配置JOTM,如何在应用中启动事务管理,以及如何处理各种异常情况。 总的来说,JOTM是一个强大的工具,对于需要在Java环境中实现分布式事务...
标题“jotm 2.1.4 source dist”指的是JOTM的2.1.4版本源代码分发版,这是一个重要的中间件组件,主要关注于事务管理。JOTM,全称Java Open Transaction Manager,是开源的Java事务管理系统,它实现了JTA(Java ...
1. **配置**:在应用服务器中配置JOTM,通常涉及设置JTA提供者、指定事务属性和资源管理器。 2. **初始化**:通过JNDI查找并获取TransactionManager实例。 3. **事务管理**:使用TransactionManager开始、提交、回滚...
JOTM是一个开源的Java事务管理器,它实现了JTA(Java Transaction API),允许开发者在分布式环境中进行事务管理。 描述中的“多数据源所需配置文件”暗示了这些JAR文件可能用于配置和管理多个数据源,这是在企业级...
2. 配置JOTM,包括设置事务超时时间、日志路径等。 3. 使用UserTransaction接口开始一个新的事务。 4. 在事务中执行需要的业务操作,如数据库操作、消息发送等。 5. 提交或回滚事务,根据业务逻辑决定。 下载的...
在这个文件中,我们可以添加JNDI(Java Naming and Directory Interface)条目来注册JOTM作为全局事务管理器。这样,Web应用程序可以通过JNDI查找并使用JOTM进行事务管理。通常,我们需要在`<Context>`元素内创建一...
在Spring中,JOTM可以作为全局事务管理器,处理跨越不同数据源的事务。当应用程序需要在多个数据库或者服务之间进行事务操作时,JOTM能够确保所有操作要么全部成功,要么全部失败,实现ACID(原子性、一致性、隔离性...