<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,就不会创建代理对象;就不存在事务;
就是只要有一个加有事务,就会创建代理对象;否则不会;是只读事务;
----
什么情况适合注解,什么情况适合配置文件?
基本类型不适合用注解,只需要赋值,框架内部分额不适合用注解;其他都可以使用注解配置实现引用;
时间: 2024-10-11 05:25:10