Spring -- Bean 02

5.Bean的懒加载

 

bean默认的作用域是singletion,在spring 的context上下文初始化的过程中这个bean就已经被初始化了。

but:

image.png

 

 

image.png

 

单例模式下bean的销毁,是等spring 的上下文销毁时才销毁。

 

 6. 手动装配&&自动装配

 

  • 普通方式:

BookDao  bookDao=new BookDao();

 

  • 手动装配:

初始化一个容器:ApplicationContext ctx= new ClassPathXmlApplicationContext("配置文件路径");

从容器中得到一个bean

bookDao= ctx.getBean(IBookDao.class);

 

  • 自动装配

根据类型类型自动装配

  

BookDao bookDao; (根据类型自动装配)

Resource

BookDao bookDao;  (根据beanname自动装配)

 

  • 零配置

无xml文件的形式

先有配置类A,类上带@configuration 在配置类中写好@componentScan("扫描范围");

然后根据类初始化spring上下文

ApplicationContext ctx = new AnnotationConfigApplicationContext(A.class);

 

 

 

 

6.1 手动装配

image.png

 

6.2 自动装配

 

image.png

 

等同于@autowired的两个注解:  和 @Inject

 

6.3 自动装配的缺点:

  • 设置autowire属性进行自动装配将会装配Bean的所有属性,若只希望装配个别属性时,autowire不够灵活
  • autowire要么根据名字要么根据类型装配,不能两者兼有

 

6.4 装配注解对比

 

image.png

 

image.png

 

 7.BeanFactory与FactoryBean的区别

  • FactoryBean:本质是Bean,是Bean工厂的实例,是spring内部实现一种规范,&开头作为beanName,是一种特殊的Bean(容器bean),spring中所有的容器都是FactoryBean,因为容器本身也由容器管理,root来创建,单利存在于IOC容器中;spring内部使用的;
  •  BeanFactory:本质是容器/工厂,bean工厂的顶层规范,定义了getBean()方法,想成一个容器必须是BeanFactory的实现类,容器内部管理者诸多普通的bean;
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页