其实在懒加载的时候只有bean被用到的时候才会加载bean,并不是在创建容器的时候创建的bean
演示代码如下:
package com.enjoy.cap4;
import com.enjoy.cap1.Person;
import org.springframework.context.annotation.*;
@Configuration
public class MainConfig {
/**
* 针对于单实例bean :默认在容器中启动的时候创建对象
* 懒加载:容器启动的时候 不创建对象 ,仅当第一次使用(获取)bean的时候才创建被初始化
* @return
*/
@Lazy
@Bean
public Person person(){
System.out.println("给我们的容器中添加person");
return new Person("张三",22);
}
}
package test;
import com.enjoy.cap1.Person;
import com.enjoy.cap4.MainConfig;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MainTEwst4 {
@Test
public void sss(){
AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(MainConfig.class);
System.out.println("容器创建完成");
Person person = (Person) annotationConfigApplicationContext.getBean("person");
System.out.println(person.toString());
}
}
输出结果:
那么我们再看一下没有加懒加载的时候 会是什么样子的呢?
package com.enjoy.cap4;
import com.enjoy.cap1.Person;
import org.springframework.context.annotation.*;
@Configuration
public class MainConfig {
/**
* 针对于单实例bean :默认在容器中启动的时候创建对象
* 懒加载:容器启动的时候 不创建对象 ,仅当第一次使用(获取)bean的时候才创建被初始化
* @return
*/
// @Lazy
@Bean
public Person person(){
System.out.println("给我们的容器中添加person");
return new Person("张三",22);
}
}
可以看到我们再创建容器的同事创建了bean