SpringBoot实例化及依赖注入时机以及延迟实例化

SpringBoot对于bean的实例化时机以及将bean通过依赖注入的方式注入到对象中的时机

做个测试:

新建一个测试类

在SpringBoot容器启动时 该bean即被实例化完成

当然也可以延迟实例化 通过注解@Lazy实现


但在SpringBoot容器启动时 一样会被实例化 没有做到延迟实例化 如图


究其原因是因为在调用方没有进行@Lazy注解 SpringBoot在实例化BannerController时根据根据需要注入的bean 会自动忽略掉需要被注入的bean的@Lazy注解

当调用方也被@Lazy延迟实例化时 


即可实现bean的延迟实例化 

PS:@Autowired注解默认方式是通过bytype的方式 如果在注入时某个类型的bean不存 报错 若果存在一个直接注入 如果存在多个 则会通过byname方式注入 也可自己指定到底需要注入哪个bean 通过注解

@Qualifier(value="")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容