主要用到了spring-aop-2.5.6.jar的AOP支持包!
之前我们在AccountService中加入了注解 @Transactional标签,但是要想要真正发挥事务作用,还需要一些配置。
主要需要调整dao.xml文件
dao.xml-事务管理
之前我们在AccountService中加入了注解 @Transactional标签,但是要想要真正发挥事务作用,还需要一些配置。
主要需要调整dao.xml文件
dao.xml-事务管理
- <bean
- id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
- p:dataSource-ref="dataSource" />
- <tx:annotation-driven
- transaction-manager="transactionManager" />
- <bean
- id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
- p:dataSource-ref="dataSource" />
- <tx:annotation-driven
- transaction-manager="transactionManager" />
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource" /> <tx:annotation-driven transaction-manager="transactionManager" />
细化一下AccountService接口方法
AccountService.java
- /**
- * 2010-1-23
- */
- package org.zlex.spring.service;
- import org.springframework.dao.DataAccessException;
- import org.springframework.transaction.annotation.Transactional;
- import org.zlex.spring.domain.Account;
- /**
- * 账户业务接口
- *
- * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>
- * @version 1.0
- * @since 1.0
- */
- public interface AccountService {
- /**
- * 获得账户
- *
- * @param username
- * @param password
- * @return
- */
- @Transactional(readOnly = true)
- Account read(String username, String password);
- /**
- * 获得账户
- *
- * @param id
- * @return
- */
- @Transactional(readOnly = true)
- Account read(int id);
- /**
- * 注册用户
- *
- * @param account
- * @return
- */
- @Transactional(readOnly = false, rollbackFor = DataAccessException.class)
- Account register(Account account);
- }
- /**
- * 2010-1-23
- */
- package org.zlex.spring.service;
- import org.springframework.dao.DataAccessException;
- import org.springframework.transaction.annotation.Transactional;
- import org.zlex.spring.domain.Account;
- /**
- * 账户业务接口
- *
- * @author <a href="mailto:zlex.dongliang@gmail.com">梁栋</a>
- * @version 1.0
- * @since 1.0
- */
- public interface AccountService {
- /**
- * 获得账户
- *
- * @param username
- * @param password
- * @return
- */
- @Transactional(readOnly = true)
- Account read(String username, String password);
- </