目录
1.Spring Bean是什么
2.Spring提供的配置方式
3.Spring bean中的scope
4.Spring bean容器的生命周期
5.Spring的内部bean
6.Spring装配是什么
7.自动装配模式
8.自动装配的局限性
9.基于注解配置容器
10.如何启动注解装配
1.Spring Bean是什么
Spring官方文档对于bean的解释为:
In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container.
翻译过来就是:在Spring中,形成你的应用程序的主干,并且被Spring IoC容器管理的对象叫做bean;一个bean就是被Spring IoC容器实例化、装配并且管理的对象。
2.Spring提供的配置方式
基于xml配置
在xml文件中设置<bean>标签来配置
基于注解配置
在类或方法上使用注解进行配置
基于Java API配置
使用@Bean和@Configuration实现
3.Spring bean中的scope
Spring bean支持五种scope:
Singleton:Spring IoC仅有一个单实例
Prototype:每次请求都会产生一个新的实例
Request:每次Http请求都会产生一个新实例,该bean仅在当前Http请求内有效
Session:每次Http请求都会产生一个新的bean,该bean仅在当前Http session中有效
Global-session:仅在 全局portlet Session的生命周期范围内有效
4.Spring bean容器的生命周期
* 第一步:实例化
* 通过反射/工厂模式
* 第二步:依赖注入:即为属性赋值
* 第三步:初始化:需要自定义init_method
* 第四步:销毁:需要自定义destroy_method
* 要想销毁,需要使用configurable ApplicationContext才能调用close
* configurableApplicationContext是ApplicationContext的子接口,其中扩展了刷新和关闭容器的方法
补充:在生命周期初始化前后,后置处理器会添加额外的操作;此时在ioc容器中配置后,会对每一个bean起作用(了解)
5.Spring的内部bean
将一个bean A 作为另一个bean B 的属性时,该bean A 被成称为内部bean
6.Spring装配是什么
装配即将bean在Spring容器中组合在一起
前提:Spring容器知道需要什么bean以及容器如何使用依赖注入将bean绑定,同时装配bean
7.自动装配模式
no:默认设置;表示没有自动装配
byName:根据bean的名称注入对象的依赖项;匹配并装配属性和xml文件中相同名称定义的bean
byType:根据类型注入对象依赖项;属性的类型和xml文件中的bean名称匹配则装配属性
详细自动装配模式见:
Spring的重点知识_perseveregz的博客-CSDN博客
8.自动装配的局限性
1.基本元数据类型(字符串、类)无法自动装配
2.自动装配可能不太精确
9.基于注解配置容器
将类标注为@Configuration,将类中的方法标注为@Bean,从而将类配置到到容器中
10.如何启动注解装配
默认情况下,Spring容器中没有打开注解装配;需要配置<context:annotation-config/>
<beans>
<context:annotation-config/>
<!-- bean definitions go here -->
</beans>