Bean的生命周期

  1. 定义
    配置xml文件,如bean的id,class等
  2. 初始化
    IoC容器的开始
  3. 使用
    使用getBean方法获取Bean的实例
  4. 销毁
    把IoC容器中的所有Bean实例销毁

Bean初始化和销毁的使用方法

  1. 默认全局的初始化和销毁方法
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd"
    default-init-method="defaultinit" default-destroy-method="defaultdestory">

</beans>

在class文件中定义这两个方法

package lifestyle;
public class BeanLifeStyle{
    public void defaultinit(){
        System.out.println("default bean init");
    }
    
    public void defaultdestory(){
        System.out.println("default bean destory");
    }
    
}
  1. 实现接口的初始化和销毁方法
package lifestyle;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

public class BeanLifeStyle implements InitializingBean,DisposableBean{

    @Override
    public void destroy() throws Exception {
        System.out.println("bean destory");
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("bean start");
    }
}

  1. 配置文件中配置初始化和销毁方法
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="lifestyle" class="lifestyle.BeanLifeStyle" init-method="start" destroy-method="stop"></bean>
</beans>

在class文件中定义这两个方法

package lifestyle;
public class BeanLifeStyle{
    public void start(){
        System.out.println("开始");
    }
    
    public void stop(){
        System.out.println("停止");
    }
}

注意:这三个方法同时使用时,1默认的则不执行,而23两种都会执行,并且是2实现接口的方式先于配置中3的执行。
1默认的全局初始化和销毁方法可以有可以没有,有没有对配置都没有太大影响,当然如果一个bean没有采取23初始化销毁方法,而有1默认的方法的话,这两个方法才会执行,即使没有,系统也不会报错。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这一章,我们通过一个具体的实例来更好的理解 Bean 生命周期的各个步骤。 1.首先我们创建一个 User Bea...
    小杰的快乐时光阅读 545评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • Spring Bean 的生命周期 Instantiate:IOC 容器在 XML 文件中找到 Bean 的定义并...
    专职跑龙套阅读 1,737评论 0 4
  • 由于发小的缘故,在初中时就认识了很多比自己大的男生,放学的时候总是成群结队的一起回家,出去玩,从一开始和...
    chin1118阅读 194评论 0 0
  • “五一”过后,我们错峰出行,爷爷带我启程喽! 我们一路上畅通无阻,但也走走停停,每次开车两个多小时就到服务...
    清纯可亲阅读 399评论 0 1