![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring感悟
西城猛少
这个作者很懒,什么都没留下…
展开
-
spring 如何解决循环依赖?
1、问题:什么叫循环依赖 Bean A 中引用 Bean B Bean B 中应用Bean A bean A实例化后会对Bean B属性赋值,发现B并不是完整的Bean,就会对Bean B进行生命周期一系列操作,到了属性赋值的时候 ,发现A也不是完整的Bean,就会形成闭环,循环依赖。2、答案:实际上spring内部解决了循环依赖,使用的是缓存机制解决的。3、众所周知,形成循环依赖,就是没有闭环出口导致的,那么添加一个出口就可以解决这个问题,而这...原创 2021-12-15 17:25:25 · 393 阅读 · 0 评论 -
spring实例化bean的几种方式?
1、构造器方式(反射); 通过xml方式找到类的全路径,找到构造方法,使用反射来实例化。2、通过静态工厂的方式;factory-method 指定的静态方法来创建bean实例。3、实例工厂方式(@Bean) factory-bean + factory-method4、factoryBean方式 bean实现factoryBean接口 重写getObject方法和getObjectType方法...原创 2021-12-14 22:55:20 · 348 阅读 · 0 评论 -
spring如何处理线程的并发问题
1、可以将成员变量声明在方法内。2、将成员变量放在ThreadLocal之中。(ThreadLocal<String> userName = new ThreadLocal<>();) 成员变量放在ThreadLocal之中,传进来的参数是跟随线程的,所以也是线程安全的。3、将bean设置为多例模式。(@Scope("prototype")) 多例模式,bean线程之间不共享就不会发生线程安全问题。4、使用同步锁(会影响系统的吞吐量...原创 2021-12-14 22:33:47 · 2063 阅读 · 0 评论