码迷,mamicode.com
首页 > 其他好文 > 详细

使用注解实现事务处理

时间:2015-11-04 09:19:47      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:


<tx:annotation-driven transaction-manager="transactionManager"/>
1,首先,将action,service,dao所有层的所有类整到容器里面;

在Dao上 @Respository("employeeDao")

@Repository("employeeDao")
public class EmployeeDaoHibImpl implements
        EmployeeDao {
    @Autowired
    private HibernateTemplate hibernateTemplate;
@Transactional
@Service("claimVoucherService")
public class ClaimVoucherServiceImpl implements ClaimVoucherService {
    //记录日志
    private final Log logger = LogFactory.getLog(getClass());
    
    @Autowired
    @Qualifier("claimVoucherDao")
    private ClaimVoucherDao claimVoucherDao;

    @Autowired
    @Qualifier("claimVoucherDetailDao")
    private ClaimVoucherDetailDao claimVoucherDetailDao;    
<bean id="hibernateTemplate"
        class="org.springframework.orm.hibernate3.HibernateTemplate" autowire="byName"/>
<!-- 扫描dao和sevice包中注解标注的类 -->
    <context:component-scan 
        base-package="cn.bdqn.jboa.dao.hibimpl, cn.bdqn.jboa.service.impl" />
    
    <!-- 定义事务管理器 -->
    <bean id="txManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <tx:annotation-driven transaction-manager="txManager" />

同时会发现,如果在save,update,delete上没有加事务限制,就会报错;因为默认是只读的事务;
如果一个方法上有@Transactional这个类就创建代理对象,有了事务;
但是如果全部没有加@Transactional,就不会创建代理对象;就不存在事务;
就是只要有一个加有事务,就会创建代理对象;否则不会;是只读事务;
----
什么情况适合注解,什么情况适合配置文件?
基本类型不适合用注解,只需要赋值,框架内部分额不适合用注解;其他都可以使用注解配置实现引用;

使用注解实现事务处理

标签:

原文地址:http://www.cnblogs.com/xuerong/p/4934997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!