参考:http://jinnianshilongnian.iteye.com/blog/1850432
主要看我评论的内容,我是已经正常解决了的。
我的评论如下:
我在代码中加入了这三个方法:
AopUtils.isAopProxy()
AopUtils.isCglibProxy() //cglib
AopUtils.isJdkDynamicProxy()
但是仍然都是返回false,不过我的事务起作用了,原因就是你说的覆盖了原来扫描的Service和Dao,我的修改是这样的
原来的代码:
<context:component-scan base-package="com.linjia.web" >
</context:component-scan>
改正后:
<context:component-scan base-package="com.linjia.web.controller" >
</context:component-scan>
这里只需要扫描controller就行了,不要整个都扫描,否则会覆盖,从而引起事务失效
原内容如下:
总有很多朋友询问spring事务不起作用怎么回事,这里我汇总下,欢迎补充:
1、首先使用如下代码 确认你的bean 是代理对象吗?
AopUtils.isAopProxy()
AopUtils.isCglibProxy() //cglib
AopUtils.isJdkDynamicProxy() //jdk动态代理
如果不是 那么就是切入点配置出错了 或者如果你使用了springmvc,可能是context:component-scan重复扫描引起的:
http://jinnianshilongnian.iteye.com/blog/1423971
http://jinnianshilongnian.iteye.com/blog/1762632
http://jinnianshilongnian.iteye.com/blog/1857189
2、如果是aop代理,那么说明代理成功,那么可能是如使用mysql且引擎是MyISAM造成的(因为不支持事务),改成InnoDB即可。
3、 如果你是基于类的代理,而非接口,如果想代理父类里的,可以用
execution(* com.sishuok.es..service..*+.*(..))
//+表示子类的也扫描(参考http://jinnianshilongnian.iteye.com/blog/1420691)
欢迎补充。
相关推荐
答:Spring 框架是一个一站式(full-stack 全栈式)框架,提供了从表现层-springMVC 到业务层-spring 再到持久层-springdata 的一套完整的解决方案。我们在项目中可以只使用 Spring 一个框架,它就可以提供表现层的 ...
Redis Cluster是Redis官方提供的分布式解决方案,它将数据分片到多个节点上,每个节点存储一部分数据,从而实现了水平扩展。Redis Cluster采用了无中心的设计,所有节点彼此通信,共同维护整个集群的状态。 ### 2. ...
在Spring MVC中,Spring Cache抽象可以方便地集成各种缓存解决方案。 4. **数据库优化**: 数据库优化涉及到SQL查询优化、索引设计、事务管理、读写分离、分库分表等。理解如何编写高效的SQL语句,避免全表扫描,...
作者讨论了SpringMVC与Hibernate的集成,以及在这个过程中可能遇到的问题和解决方案。他还深入解析了AspectJ的切入点表达式,这是Spring AOP中用于定义关注点的关键语法。 Spring对事务管理的支持随着版本的升级而...
9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 ...
其数据结构类型、使用场景、实现分布式锁的机制、单线程模型的好处、多线程并发控制、key的删除策略、缓存一致性问题、集群环境下的一致性哈希和缓存问题(如击穿、穿透、雪崩)的解决方案是面试官常问内容。...
跨域请求可能导致安全性问题,解决方案包括CORS、JSONP、代理服务器等。 Spring中的Bean生命周期包括实例化、初始化、属性注入、后处理、销毁等步骤。Bean默认不是线程安全的,需要手动管理。 `ApplicationContext...
- 解决方案:CORS 或 JSONP。 3. **Spring中的Bean创建的生命周期有哪些步骤** - Bean 定义的初始化。 - Bean 实例的创建。 - 属性注入。 - 初始化方法调用。 - 销毁方法调用。 4. **Spring中Bean是否线程...
7. **字段映射**:实体类属性与表字段不一致时,可以使用`@Results`注解或者XML配置中的`resultMap`进行映射。 8. **模糊查询**:可以使用`like`语句,注意对特殊字符需要转义处理。 9. **Dao接口原理**:MyBatis...
- **Hibernate**:全ORM解决方案,自动管理对象的生命周期。 - **MyBatis (原Ibatis)**:半ORM框架,提供动态SQL支持。 - **JDBC**:直接与数据库交互,灵活性高但编码繁琐。 ##### Hibernate的运行原理 - **...