在spring中,Bean的生命周期包括Bean的定义、初始化、使用、销毁4个阶段
1. Bean的定义
在spring中,通常是通过配置文件的方式来定义Bean的
在配置文件中,可以定义多个Bean.
2. Bean的初始化
默认在IOC容器加载时,实例化对象。
Spring Bean初始化有两种方式:
方式一:在配置文件汇总通过指定init-method属性来完成。
public class RoleService { // 定义初始化时需要被调用的方法 public void init() { System.out.println("RoleService init..."); } }
<bean id="roleService" class="com.xxxx.service.RoleService" init-method="init"> </bean>
方式二:实现 org.springframework.beans.factory.InitializingBean 接口。
public class RoleService implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { System.out.println("RoleService init..."); } }
<bean id="roleService" class="com.xxxx.service.RoleService" ></bean>
Bean对象实例化过程是在Spring容器实例化时被实例化的,但也不是不可改变的,可以通过lazy-init="true"属性延迟bean对象的初始化操作,此时在调用getBean方法时才会进行bean的初始化操作
3. Bean的使用
方式一:使用 BeanFactory
// 得到Spring的上下文环境
BeanFactory factory = new ClassPathXmlApplicationContext("spring.xml");
RoleService roleService = (RoleService) factory.getBean("roleService");
方式二:使用 ApplicationContext
// 得到Spring的上下文环境
ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
RoleService roleService = (RoleService) ac.getBean("roleService");
4. Bean的销毁
实现销毁方式(Spring容器会维护bean对象的管理,可以指定bean对象的销毁所要执行的方法)。
步骤一:实现销毁方式(Spring容器会维护bean对象的管理,可以指定bean对象的销毁所要执行的方
法)
<bean id="roleService" class="com.xxxx.service.RoleService" destroy- method="destroy"></bean>
步骤二:通过 AbstractApplicationContext 对象,调用其close方法实现bean的销毁过程
AbstractApplicationContext ctx=new ClassPathXmlApplicationContext("spring.xml"); ctx.close();
IOC/DI-控制反转和依赖注入:将对象实例化的创建过程转交给外部容器(IOC容器 充当工厂角色)去负责;属性赋值的操作;
网友评论