一、创建bean的三种方式
1、使用无参构造的方式创建对象
在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时。
<!--使用无参构造的方式创建对象-->
<bean id="userInfo" class="com.wedu.spring01.entity.UserInfo"/>
注意:创建对象id必须唯一 。
2、使用静态工厂的方式创建对象(使用某个类中的静态方法创建对象,并存入spring容器)
<!--利用静态工厂方法来创建对象-->
<bean id="cal" class="java.util.Calendar" factory-method="getInstance"/>
factory-method属性:指定一个静态方法名 。
3、使用实例工厂的方法创建对象(使用某个类中的方法创建对象,并存入spring容器)
<!--使用实例工厂的方法创建对象-->
<bean id="date" class="java.util.Date"/>
<bean id="time" factory-bean="date" factory-method="clone"/>
factory-bean属性:指定bean的id。
二、bean的作用范围
bean的作用范围使用scope属性设置,scope的有以下值:
- singleton:单例的(默认值),在整个应用中,只创建bean的一个实例。
- prototype:多例的,每次注入或者通过Spring应用上下文获取的时候,都会创建一个新的bean实例。
- request:作用于web应用的请求范围,在Web应用中,为每个请求创建一个bean实例。
- session:作用于web应用的会话范围,在Web应用中,为每个会话创建一个bean实例。
- global-session:作用于集群环境的会话范围(全局会话范围),当不是集群环境时,它就是session
<!--使用scope属性指定bean的作用范围-->
<bean id="scope" class="com.wedu.spring01.entity.UserInfo" scope="singleton"/>
三、bean对象的生命周期
1、容器的初始化
<!--指定初始化方法-->
<bean id="msg" class="com.wedu.spring01.entity.UserInfo" init-method="init" />
2、容器的销毁
<!--指定销毁方法-->
<bean id="msg" class="com.wedu.spring01.entity.UserInfo" destroy-method="destroy" />
注意:关闭sping容器时调用destroy方法,只有作用域为singleton时,销毁方法才起作用。
扫描二维码关注公众号,回复:
8783550 查看本文章