
Spring
文章平均质量分 72
迪迪迦
你相信光吗?相信并追逐着
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
事务扩展机制 TransactionSynchronization
添加链接描述转载 2025-06-05 14:23:51 · 164 阅读 · 0 评论 -
肝!!!Spring事务报错?是不是没看这篇文章?
spring使用事务的注意事项 Q1.同一个类中事务方法是无法直接调用的,如果 ServiceA.methodA调用 Service.methodB,会使被调用方法的事务失效。 因为spring的事务是基于代理类来实现的。在controller里的service其实是代理对象,所以b方法的事务有效。,而在同一个类中ServiceA.methodA调用 Service.methodB,你拿到的不是代理后的methodB,所以事务会失效 解决方法很简单,在methodA方法类中获取当前对象的代理对象 Serv原创 2021-06-20 23:13:05 · 268 阅读 · 0 评论 -
肝!!!瞎扯,Spring只能解决setter注入方式的循环依赖?不存在的!
别的先不扯,先上结论 方式 依赖情况 注入方式 能够解决循环依赖 情况一 AB相互依赖 均采用setter方式 能 情况二 AB相互依赖 均采用构造器方式 不能 情况三 AB相互依赖 A中注入B采用setter,B中注入A采用构造器 能 情况四 AB相互依赖 A中注入B采用构造器,B中注入A采用setter 不能 测试数据 <bean id="a" class="com.ziyang.cycle.A"> <constructor-arg r原创 2021-06-20 20:19:40 · 832 阅读 · 1 评论 -
肝!!!手撕Spring循环依赖
别的先不扯,先上结论 Spring通过三级缓存解决了循环依赖,其中一级缓存为单例池(singletonObjects),二级缓存为早期曝光对象earlySingletonObjects,三级缓存为早期曝光对象工厂(singletonFactories)。 当A、B两个类发生循环引用时,在A完成实例化后,就使用实例化后的对象去创建一个对象工厂,并添加到三级缓存中,如果A被AOP代理,那么通过这个工厂获取到的就是A代理后的对象,如果A没有被AOP代理,那么这个工厂获取到的就是A实例化的对象。 当A进行属性注原创 2021-06-20 14:32:29 · 139 阅读 · 0 评论