@Lazy注解
- 当@Lazy 放在类上,表示在启动的时候不会创建bean对象,当使用的时候才会创建
- 当@Lazy 放在@Bean注解的方法上,表示在启动的时候不会创建bean对象,当使用的时候才会创建
- 当@Lazy 放在@Autowired注解的属性上, 并不会直接给属性赋上真正的值,只是会赋值一个代理对象,当真正使用到这个属性的时候,才回去容器中找到一个符合的对象。在使用的时候,也会先执行代理对象的逻辑,然后再是真正bean对象的逻辑
使用场景:循环依赖的时候可以在循环依赖的对象加上@Lazy注解 - 写在方法或者方法参数前面上,效果和写在属性上是一样的,开始注入的只是代理对象,当真正调用的时候才会调用对应对象的逻辑
- 写在构造方法或者构造方法参数前面上,同上