hibernate+atomikos分布式事务配置

来源:互联网 发布:手机淘宝一键秒杀在哪? 编辑:程序博客网 时间:2024/03/29 22:12
<?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:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="  http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-4.0.xsd   http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-4.0.xsd  http://www.springframework.org/schema/aop   http://www.springframework.org/schema/aop/spring-aop.xsd  http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-4.0.xsd  "><context:property-placeholder location="classpath:config.properties" /><!-- 开启编程式事务 --><tx:annotation-driven transaction-manager="springTransactionManager" /><!-- 用atomikosDataSourceBean配置数据源1 --><bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean"><property name="uniqueResourceName"><value>db1</value></property><property name="xaDataSourceClassName"><value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value></property><property name="xaProperties"><props><prop key="user">root</prop><prop key="password">root</prop><prop key="url">jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8</prop></props></property><property name="maxPoolSize"><value>3</value></property></bean><!-- session工厂 --><bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="hibernateProperties"><props><prop key="hibernate.hbm2ddl.auto">update</prop><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop></props></property><!-- 注解方式配置 --><property name="packagesToScan"><list><value>com.feng.model</value></list></property></bean><bean id="dataSource2" class="com.atomikos.jdbc.AtomikosDataSourceBean"><property name="uniqueResourceName"><value>db2</value></property><property name="xaDataSourceClassName"><value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value></property><property name="xaProperties"><props><prop key="user">root</prop><prop key="password">root</prop><prop key="url">jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=UTF-8</prop></props></property><property name="maxPoolSize"><value>3</value></property></bean><!-- session工厂 --><bean id="sessionFactory2"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource2" /><property name="hibernateProperties"><props><prop key="hibernate.hbm2ddl.auto">update</prop><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop></props></property><!-- 注解方式配置 --><property name="packagesToScan"><list><value>com.feng.model2</value></list></property></bean><!-- 配置atomikos事务管理 --><bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"init-method="init" destroy-method="close"><property name="forceShutdown"><value>true</value></property></bean><bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"><property name="transactionTimeout"><value>30000</value></property></bean><!-- 用jta来做事务管理器 --><bean id="springTransactionManager"class="org.springframework.transaction.jta.JtaTransactionManager"><property name="transactionManager" ref="atomikosTransactionManager" /><property name="userTransaction" ref="atomikosUserTransaction" /></bean><tx:advice id="txAdvice" transaction-manager="springTransactionManager"><tx:attributes><!-- 针对不同的方法的具体事务操作 --><tx:method name="add*" propagation="REQUIRED" /><tx:method name="save*" propagation="REQUIRED" /><!-- read-only="true" 表示只读 --><tx:method name="*" propagation="REQUIRED" read-only="true" /></tx:attributes></tx:advice><aop:config><aop:pointcut expression="execution(* com.feng.service.*.*(..))" id="serviceOperation"/><aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />  </aop:config></beans>


                                             
0 0
原创粉丝点击