springboot @Lazy 实现原理
时间: 2023-07-12 15:01:12 浏览: 122
在 Spring Boot 中,@Lazy 注解用于延迟加载 Bean。当一个 Bean 被标记为 @Lazy 时,它将在第一次被使用时才会被创建,而不是在应用程序启动时被创建。
@Lazy 注解的实现原理是通过将 Bean 的实例化过程推迟到第一次使用时。当容器启动时,会将标记为 @Lazy 的 Bean 的定义加载到容器中,但是它们的实例化会被推迟到第一次被使用时。
具体的实现过程是,当容器加载一个标记为 @Lazy 的 Bean 的定义时,Spring 会将该 Bean 的实例化过程封装在一个代理对象中。当应用程序需要使用该 Bean 时,代理对象会被调用,它会负责实例化 Bean 并将其返回给应用程序。
需要注意的是,@Lazy 注解只对单例 Bean 有效,因为对于原型 Bean,每次都会创建一个新的实例,不存在延迟加载的问题。
阅读全文