沉睡森林@漂在北京

本处文章除注明“转载”外均为原创,转载请注明出处。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  152 随笔 :: 4 文章 :: 114 评论 :: 0 Trackbacks

今天对以前写的东西进行了部分整理,发现利用spring2.5的注释事物控制,好像只有一次成功过,那次使用的是JdbcTemplate。但是后来利用hibernate或者ibatis都没有成功,今天整理了很长时间,还是没有配置好。下面是写的一些xml文件,个人感觉应该没有什么问题了,疑惑。

 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

       destroy-method="close">

       <property name="driverClassName" value="com.mysql.jdbc.Driver" />

       <property name="url" value="jdbc:mysql://localhost/greatwall" />

       <property name="username" value="root" />

       <property name="password" value="sa" />

    </bean>

   

    <!-- ibatis sqlMapClient config -->

    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

       <property name="configLocation">

           <value>classpath:sql\sql-map-config.xml</value>

       </property>

       <property name="dataSource">

           <ref bean="dataSource" />

       </property>

    </bean>

   

    <bean id="transactionManager"

       class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

       <property name="dataSource" ref="dataSource" />

    </bean>

   

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

       <tx:attributes> 

         <!-- all methods starting with 'get' are read-only

           <tx:method name="select*" read-only="true" />  -->

         <!-- other methods use the default transaction settings (see below) -->

           <tx:method name="*" />

       </tx:attributes>

    </tx:advice>

   

    <aop:aspectj-autoproxy /> 

    <aop:config proxy-target-class="true" />

      <!--

    <aop:config proxy-target-class="true" >

       <aop:pointcut id="fooServiceOperation" expression="execution(* com.example.service.ICustomerService.*(..))" />

       <aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation" />

    </aop:config>

    -->

   

    <aop:config proxy-target-class="true" >

       <aop:advisor   pointcut="execution(* com.example.service.ICustomerService.*(..))"  advice-ref="txAdvice" />

    </aop:config>

   

    <bean id="customerDAO" class="com.example.dao.impl.CustomerDAO">

       <property name="sqlClient" ref="sqlMapClient" />

    </bean>

   

   

    <bean id="customerService" class="com.example.service.impl.CustomerService">

       <property name="customerDAO" ref="customerDAO" />

    </bean>

posted on 2009-02-14 21:48 王总兵 阅读(753) 评论(2)  编辑  收藏

评论

# re: spring事物控制问题整理(1) 2009-02-14 23:40 王兵
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"" target="_new">http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"" target="_new">http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"" target="_new">http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"" target="_new">http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/greatwall">
</property>
<property name="username" value="root"></property>
<property name="password" value="sa"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/example/domain/Customer.hbm.xml</value>
</list>
</property>
</bean>



<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

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

<aop:config proxy-target-class="true" />


<aop:config proxy-target-class="true" >
<aop:advisor pointcut="execution(* com.example.service.CustomerService.*(..))" advice-ref="txAdvice" />
</aop:config>

<bean id="customerDao" class="com.example.dao.impl.CustomerDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<bean id="customerService" class="com.example.service.impl.CustomerServiceImpl">
<property name="customerDao" ref="customerDao" />
</bean>


</beans>  回复  更多评论
  

# re: spring事物控制问题整理(1) 2009-02-14 23:42 王兵
上面的xml配置在hibernate下面可以使用,对于ibatis还没有配置成功过。郁闷。继续利用注释对hibernate进行配置,不过感觉利用AOP还是比较省事,对service的方法进行规范,一个地方配置解决了一大堆的注释。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: