Spring中的AOP,以及声明式事务 @Transactional无法拦截事务

Sou2012 Sou2012 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
DAO中
@Repository
public class TestDao extends BaseHibernateDao {

public void test(){
String hql = " update ZTest set uname = ? where id = 5 ";
Query q = this.getSession(true).createQuery(hql);
q.setString(0, "x");
q.executeUpdate();

String hql2 = " update ZTest set unadfme = ? where id = 5";
Query q2 = this.getSession(true).createQuery(hql2);
q2.executeUpdate();
}

}


SERVICE中

@Service
public class ServiceTest extends BaseService {

@Autowired
TestDao testDao;

@Override
public void destroy() {

}

@Override
public void init() {

}


@Transactional
public void testTransactional(){
testDao.test();
}

}

CONTROLLER中

@Controller
public class PLetterController extends BaseController {
@Autowired
ServiceTest serviceTest;


@RequestMapping("/testT.do")
public void test(Writer writer) throws Exception{
serviceTest.testTransactional();
}

}

SPRING 管理 HIBERNATE

<?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"
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/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">


<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName">
<value>org.logicalcobwebs.proxool.ProxoolDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:省略..........</value>
</property>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="packagesToScan">
<list>
<value>com.XXXXXXX.domain</value>
</list>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="configLocation">
<value>WEB-INF/classes/hibernate.cfg.xml</value>
</property>
</bean>

<!--
<tx:annotation-driven transaction-manager="transactionManager" />

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

<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" />

<bean class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
<property name="transactionInterceptor" ref="transactionInterceptor"/>
</bean>

<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributeSource">
<bean class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource"/>
</property>
</bean>
-->

<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>

<!-- enable the configuration of transactional behavior based on annotations -->
<tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>


</beans>

大侠救命!
...全文

相关推荐

Spring Data JPA系列4——Spring声明式事务处理与多数据源支持.doc

Spring Data JPA系列4——Spring声明式事务处理与多数据源支持.doc

书博教育

Spring笔记说明文件

3)、ProxyTransactionManagementConfiguration 做了什么? 1、给容器中注册事务增强器; 1)、事务增强器要用事务注解的信息,AnnotationTransactionAttributeSource解析事务注解 2)、事务拦截器: TransactionInterceptor;保存了事务属性信息,事务管理器; 他是一个 MethodInterceptor; 在目标方法执行的时候; 执行拦截器链; 事务拦截器: 1)、先获取事务相关的属性 2)、再获取PlatformTransactionManager,如果事先没有添加指定任何transactionmanger 最终会从容器中按照类型获取一个PlatformTransactionManager; 3)、执行目标方法 如果异常,获取到事务管理器,利用事务管理回滚操作; 如果正常,利用事务管理器,提交事务

qq_20550951

spring-mybatis事务管理配置与@Transactional注解使用转可编辑范本(1).doc

spring-mybatis事务管理配置与@Transactional注解使用转可编辑范本(1).doc

huono2599

2308 SpringBoot+MyBatisPlus 实现 Tx、AOP

2308 SpringBoot+MyBatisPlus 实现 Tx、AOP

勇 士 Teacher

MyEclipse 6 Java 开发中文教程第十章

第十章 开发Spring应用... 189<br><br>10.1 简介... 189<br><br>10.1.1 Spring简介... 189<br><br>10.1.2 MyEclipse的Spring开发功能简介... 191<br><br>10.2 开发简单的Spring应用... 191<br><br>10.2.1 给项目加入Spring功能... 191<br><br>10.2.2 创建Bean类和配置信息... 193<br><br>10.2.3 Spring Beans 视图和Outline视图... 197<br><br>10.2.4 运行和测试... 199<br><br>10.3 开发Spring 1.2 AOP应用... 200<br><br>10.3.1 开发Man对象... 201<br><br>10.3.2 开发前置通知(Before advice)对象:FBI 201<br><br>10.3.3 装配拦截器和Bean. 202<br><br>10.3.4 测试和运行... 203<br><br>10.3.5 AOP简介和相关概念... 204<br><br>10.4 开发 Spring 2.0 AOP 应用... 206<br><br>10.4.1 使用aop 标签实现AOP. 206<br><br>10.4.2 使用标注(@AspectJ)实现AOP. 208<br><br>10.4.3 开发环绕通知(Around Advice)AOP 应用... 210<br><br>10.5 Spring数据库开发... 214<br><br>10.5.1 DataSource 和 JDBCTemplate开发... 214<br><br>10.5.2 Hibernate 整合 Spring开发... 223<br><br>10.5.2.1 创建项目,添加必要的开发功能... 223<br><br>10.5.2.2 反向工程生成Spring整合Hibernate的DAO.. 225<br><br>10.5.2.3 用Spring 1.2 的事务代理类解决事务提交问题... 232<br><br>10.5.2.4 用Spring 2.0 的aop和tx声明式配置解决事务提交问题... 234<br><br>10.5.2.5 用Spring 2.0 的@Transactional标注解决事务提交问题(最佳方案) 238<br><br>10.5.2.6 使用 HibernateTemplate 实现分页查询... 241<br><br>10.6 小结... 242<br><br>10.7 参考资料... 242<br><br>10.7.1 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法... 242<br><br>10.7.2 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法2 - 用 CGLIB 来实现事务管理 245<br><br>10.7.3 Spring相关的参考资料... 248 <br><br>

shi1128
评论 76
收藏 已收藏
分享
返回顶部
Sou2012
Web 开发 81,108 成员 341,721 内容