@Lazy
用来控制Spring中的单实例Bean的初始化时间。Spring Ioc容器一般都是在启动的时候初始化这些单例Bean,但是可以通过@Lazy注解来控制初始化时间。配置@Lazy注解主要是减少Spring Ioc容器的加载时长
@Lazy的value属性有两个取值:true和false,默认为true;
value的值为true时 表示启用延迟加载,即不会在启动的时候初始化,而是在调用的时候才去初始化
value的值为false时 表示不启用延迟加载,启动的时候就初始化好Bean,(此与不使用@Lazy注解效果一模一样)
Person类
public class Person {
private String name;
private Integer age;
public Person() {
}
public Person(String name, Integer age) {
System.out.println(" 对象被创建了.............");
this.name = name;
this.age = age;
}
}
配置类 不使用@Lazy注解
public class LazyConfig {
@Bean
public Person person() {
return new Person("张三", 23);
}
}
测试
@Test
public void test5() {
ApplicationContext context = new AnnotationConfigApplicationContext(LazyConfig.class);
}
控制台打印结果:
配置类 使用@Lazy注解
public class LazyConfig {
@Lazy
@Bean
public Person person() {
return new Person("张三", 123);
}
}
测试控制台打印结果: