Spring生命周期-bean初始化和销毁方法

bean初始化依赖于构造器,何为构造器?

构造器:一个特殊的方法,用于创建实例时执行初始化(各种框架以及设计模式都依赖构造器)
作用:被其他方法调用,给对象初始化赋值。基本数据类型(默认值为0),布尔(默认为false),引用(默认为null),然后返回该类的实例
注意:如果程序员没有为Java类提供任何构造器,则系统会为这个类提供一个无参数的构造器,这个构造器的执行体为空,不做任何事情。
          无论如何,Java类至少包含一个构造器。构造器通常设置为public访问权限,允许系统中任何位置的类来创建该类的对象(极端情况例外)。

bean初始化和销毁,常见的有如下4种:
1.xml配置文件
2.@bean注解
3.实现InitializingBean和DisposableBean接口
4.@PostConstruct&@PreDestroy注解

bean创建--初始化---销毁的过程如下:
调用构造器(创建对象)
     单实例:在容器启动的时候创建对象
     多实例:在每次获取的时候创建对象
初始化:
    对象创建完成,并赋值好,调用初始化方法
销毁:
    单实例:容器关闭的时候
    多实例:容器不会管理这个bean,容器不会调用销毁方法

第一种方式,xml文件里bean标签里配置 init-method和destroy-method
第二种方式,使用@bean注解,指定initMethod = "init", destroyMethod = "destroy" 方法
@Bean(initMethod = "init", destroyMethod = "destroy",name = "fuTu")
public FuTu getFuTu() {
    return new FuTu();
}

public class FuTu {
    public FuTu() {
        System.out.println("富途牛牛-无参构造创建中-----");
    }

    public void init() {
        System.out.println("富途牛牛-init-----");
    }

    public void destroy() {
        System.out.println("富途牛牛-destroy-----");
    }

}

第三种,实现InitializingBean和DisposableBean接口
public class HuaTai implements DisposableBean, InitializingBean {
    public HuaTai() {
        System.out.println("华泰-无参构造函数-------");
    }
    @Override
    public void destroy() throws Exception {
        System.out.println("华泰-destroy-----");
    }
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("华泰-afterPropertiesSet-----");
    }
}

第四种,使用@PostConstruct&@PreDestroy注解

public class HuiLi {
    public HuiLi() {
        System.out.println("辉立--无参构造函数-----");
    }
    @PostConstruct
    public void init() {
        System.out.println("辉立--init-----");
    }
    @PreDestroy
    public void destory() {
        System.out.println("辉立--destory-----");
    }

}

富途牛牛-无参构造创建中-----
富途牛牛-init-----
容器已经启动----------
富途牛牛-destroy-----

  通过上面代码打印结果可知,容器管理bean的生命周期,依赖于构造器(创建对象),调用默认或者自定义初始化和销毁方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值