bean标签:
- 名称bean
- 类型:标签
- 归属:beans标签
- 作用:定义spring中的资源,受此标签定义的资源将受到spring控制
- 格式:
基本属性:<beans>
<bean />
<beans />
id:bean的名称,通过id获取bean<bean id="beanId" name="beanName1,beanName2" class="ClassName"></bean>
class:bean的类型
name:bean的名称,可以通过name获取bean,用于多人配合时给bean起别名
scope标签:
- 名称scope
- 类型:属性
- 归属:bean标签
- 作用:定义bean的作用范围
格式
<bean scope="singleton"></bean>
取值:
- singleton:设定创建出的对象保存在spring容器中,是一个单例的对象
- prototype:设定创建出的对象保存在spring容器中,是一个非单例对象
- request、session、application、websocket:设定创建出的对象放置在web容器对应的位置
- 默认为单例singleton
ps:单例情况下,是在加载容器时就创建对象(创建applicationContext时)
非单例情况下,是在获取对象时创建(getBean)
bean生命周期
- 名称init-method,destroy-method
- 类型:属性
- 归属bean标签
- 作用:定义bean对象在初始化或销毁时完成的工作
格式
<bean init-mehtod="init" destroy-method="destroy"></bean>
取值:bean对应的具体方法名
ps:类似于前后置操作
在每次创建对象时执行,单例执行一次,非单例创建一次执行一次
非单例不归spring容器管理,spring只负责new出对象
bean对象创建方式(了解)
- 名称factory-bean,factory-method
- 类型:属性
- 归属:bean标签
- 作用:定义bean对象创建方式,使用实例工厂的形式创建bean,兼容早期遗留系统的升级工作
格式
<bena factory-bean="factoryBeanID" factory-method="factoryMethodName"></bean>
取值:工厂bean中用于获取对象的实例方法
- 注意事项:
- 使用实例工厂创建bean首先需要将实例工厂配置bean,交有spring进行管理
- factory-bean是实例工厂个的beanId
配置:class(静态工厂类全类名) factory-method(工厂方法名称)
静态工厂bean
<bean id="userService4" class="com.example.service.UserServiceFactory" factory-method="getService" />
实例工厂bean
先创建实例工厂bean对象
<bean id="factoryBean" class="com.example.service.UserServiceFactory2" />
factory-bean指定实例工厂bean对象 factory-method指定方法
<bean id="userService5" factory-bean="factoryBean" factory-method="getService" />