1 注解单例问题

component和Service和controller注解问题

三个注解都是单例。

突然一下发蒙,忘记了这个地方的注解的单例是什么意思。

spring框架怎么会使得一个类成为单例,一个类成为单例得把构造方法设为私有。spring框架也完成不了啊。

后来查阅资料发现,这里的单例是指被注解的类是多个请求对应着一个对象,还是来一个请求创建一个对象。

 

2 controller为何可以是单例?

因为controller中我们一般是不设有需要修改的属性,所以controller可以是单例的。当然其实就算有属性,但是属性和每次来的请求的内容无关,其实也是可以是单例的。

2 注解循环依赖问题

出现循环依赖的时机:通过属性注入不会有依赖问题,通过构造函数注入的时候才会出现循环依赖问题

原理分析:

比如A依赖B,B依赖A ,通过构造器注入。

这种方式下遇到A new A的时候,必须执行new B,B的构造函数又必须调A的构造函数创建A。这就是死结。

但是如果是属性注入,那么过程就是首先创建A,然后把B作为属性set到A中,从这个操作也能看出,

解析spring循环依赖策略:

https://www.cnblogs.com/lizo/p/7401287.html  此文对spring这个循环依赖从源码进行了分析

自测的结果:(环境springboot)

Spring注解问题

自测结论:通过构造函数注入的循环依赖会报错。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-05
  • 2022-12-23
  • 2021-06-29
  • 2021-11-14
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-26
  • 2021-12-11
  • 2021-11-15
  • 2021-12-06
  • 2021-04-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案