
Spring
文章平均质量分 67
迪迪迦
你相信光吗?相信并追逐着
展开
-
肝!!!Spring事务报错?是不是没看这篇文章?
spring使用事务的注意事项Q1.同一个类中事务方法是无法直接调用的,如果 ServiceA.methodA调用 Service.methodB,会使被调用方法的事务失效。因为spring的事务是基于代理类来实现的。在controller里的service其实是代理对象,所以b方法的事务有效。,而在同一个类中ServiceA.methodA调用 Service.methodB,你拿到的不是代理后的methodB,所以事务会失效解决方法很简单,在methodA方法类中获取当前对象的代理对象Serv原创 2021-06-20 23:13:05 · 261 阅读 · 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 · 806 阅读 · 1 评论 -
肝!!!手撕Spring循环依赖
别的先不扯,先上结论Spring通过三级缓存解决了循环依赖,其中一级缓存为单例池(singletonObjects),二级缓存为早期曝光对象earlySingletonObjects,三级缓存为早期曝光对象工厂(singletonFactories)。当A、B两个类发生循环引用时,在A完成实例化后,就使用实例化后的对象去创建一个对象工厂,并添加到三级缓存中,如果A被AOP代理,那么通过这个工厂获取到的就是A代理后的对象,如果A没有被AOP代理,那么这个工厂获取到的就是A实例化的对象。当A进行属性注原创 2021-06-20 14:32:29 · 132 阅读 · 0 评论