spring weblogic 分布式事务配置

    

         这里先描述一下环境:

          spring 3.0.4

          weblogic 10

          oracle 10g         

 关键条件:

         1、在weblogic的当前域下配置数据源,配置的时候要选择oracle thin XA的驱动,否则会报异常。

 

<?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"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="
     http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/tx
     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context.xsd">

 

  <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate" scope="singleton"
    lazy-init="default">
    <property name="environment">
       <props>
          <prop key="java.naming.factory.initial">
            weblogic.jndi.WLInitialContextFactory
          </prop>
          <prop key="java.naming.provider.url">t3://localhost:7009</prop>
       </props>
     </property>
  </bean>

 

  <bean id="dataSource3" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName"><value>CT</value></property>
    <property name="jndiTemplate"><ref local="jndiTemplate"/></property>
 </bean>

 

  <bean id="dataSource4" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName"><value>CT1</value></property>
    <property name="jndiTemplate"><ref local="jndiTemplate"/></property>
 </bean>

 

     <bean id="service" class="x.y.service.Service">
      <property name="fooService" ref="fooService" />
     </bean>

 

   <bean id="fooService" class="x.y.service.DefaultFooService">
    <property name="dataSource" ref="dataSource3" />
    <property name="fooService" ref="fooService1" />
     </bean>

 

      <bean id="fooService1" class="x.y.service.DefaultFooService1">
    <property name="dataSource" ref="dataSource4" />
     </bean>

 

   <tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
      <tx:method name="*"/>
    </tx:attributes>
   </tx:advice>

 

   <aop:config>
    <aop:pointcut id="fooServiceOperation" expression="execution(* x.y.service.FooService.*(..))"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation"/>
   </aop:config>

 

   <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" scope="singleton"
     lazy-init="default">
    <property name="jndiTemplate">
     <ref local="jndiTemplate" />
    </property>
    <property name="userTransactionName">
     <value>weblogic/transaction/UserTransaction</value>
    </property>
  </bean>

 

</beans>

你可能感兴趣的:(spring,AOP,bean,weblogic,Class,attributes)