懒加载主要针对单实例,默认在IOC容器启动的时候创建,如果配置懒加载,在第一次使用的时候,IOC才会创建bean
配置类
@Configuration
public class DemoConfig {
@Bean("person")
@Lazy
public Person getPerson(){
System.out.println("初始化之前Person");
return new Person(1,"123",12);
}
}
测试类
public class DemoApp {
public static void main(String[] args){
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(DemoConfig.class);
//如果先打印这一句,表示IOC初始化完成了,person还没有创建,
//反之就是person在IOC初始化之前创建
System.out.println("IOC初始化");
applicationContext.getBean("person");
}
}
结果
配置类没有加上@lazy注释结果:说明在ioc完成初始之前,person已经创建
初始化之前Person
IOC初始化
配置类加上@Lazy结果:说明在ioc完成之后,person调用的时候才创建
IOC初始化
初始化之前Person