- org.springframework.context.annotation.Lazy指明一个bean是否被延迟初始化。
- 可以用在直接、或间接被@Component注解的类上,用在被@Bean注解的方法上。
- 如果这个注解没有在@Component或@Bean定义上出现,那么默认将立即初始化。如果这个注解出现,并且属性设置为true,那么@Bean或者@Component将不会被初始化,直到被其它bean引用的时候,或者显式地从包围(enclosing)BeanFactory中获取bean的时候。如果@Lazy注解出现,并且属性值设置为false,那么bean将会被bean工厂在启动的时候实例化。
- 如果@Lazy注解用在@Configuration类上,那么意味着该@Configuration类内的所有@Bean方法将会被延迟初始化。如果一个@Configuration类被@Lazy注解,同时该@Configuration类内一个@Bean方法上也被@Lazy注解并且属性值设置为false,并那么就表示该bean被立即初始化,覆盖了@Configuration类上的默认延迟初始化策略。
- 除了在组件初始化方面的角色以外,@Lazy注解也可以被放在Autowired或Inject标记的注入点上:在这种上下文中,它将导致为所有受影响的依赖创建一个延迟解析代理,作为用ObjectFactory或Provider的一种替代。注意:这样的一个延迟解析代理总是会被注入。因此,这样的一个注入点对可选的依赖产生不直观的行为。
spring的@Lazy注解
于 2024-01-29 09:08:35 首次发布