Bean
IOC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为Bean
bean配置
名称:bean
类型:标签
所属:beans标签
功能:定义Spring核心容器管理的对象
格式:
属性列表:
id:bean的id,使用容器可以通过id值获取对应的bean,在一个容器中id是唯一的
class:bean的类型,及配置的bean的全路径类名
配置别名
名称:name
类型:属性
所属:bean标签
功能:定义bean的别名,可定义多个,使用逗号(,)分号(;)空格( )进行分隔

注意事项:获取bean无论是通过id还是name获取,如果无法获取到,将抛出异常NoSuchBeanDefinitionExption异常
Bean作用范围配置
名称:scope
类型:属性
所属:bean标签
功能:定义bean的作用范围:
singleton:单例(默认的)
prototype:非单例

scope的取值不仅仅只有singleton和prototype,还有request、session、application、 websocket ,表示创建出的对象放置在web容器(tomcat)对应的位置。比如:request表示保存到request域中。
一般单例可以满足日常开发
bean的实例化
bean本质上就是对象,创建bean使用构造方法完成
1.构造方法方式
BookDaoImpl实现类

applicationContext.xml配置

测试类

注意:无参构造方法如果不存在,将抛出异常
2.静态工厂方式
EatDaoImpl实现类

工厂类

applicationContext.xml配置

测试类

3.实例工厂方式,变种为实现FactoryBean接口
UserDao实现类

工厂类:

applicationContext.xml配置

测试类

UserFactoryBean类

applicationContext.xml配置

Bean的生命周期
生命周期:从创建到消亡的完整过程
bean生命周期:bean从创建到销毁的整体过程
bean生命周期控制:在bean创建后到销毁前做一些事情
Bean销毁时机:
容器关闭前触发bean的销毁
关闭容器方式:
手动关闭容器:ConfigurableApplicationContext接口close()操作
注册关闭钩子,在虚拟机退出前先关闭容器再退出虚拟机:ConfigurableApplicationContext接口registerShutdownHook()操作
本文详细介绍了Spring框架中Bean的配置,包括bean的id和class属性,配置别名,作用域设置(如singleton和prototype)。此外,还讨论了Bean的实例化方法,如构造方法、静态工厂和实例工厂,并提及了实现FactoryBean接口的情况。最后,文章讲解了Bean的生命周期及其控制,包括何时销毁Bean以及如何关闭Spring容器。
1025

被折叠的 条评论
为什么被折叠?



