Spring注解问题

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)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值