Spring Bean的生命周期

Bean ---- 创建-----初始化-----销毁的过程
构造(对象创建):

  1. 单实例:容器启动的时候创建对象

  2. 多实例:每次调用的时候创建实例

初始化:
对象创建完成,并赋值好,调用初始化方法
销毁:
单实例-容器关闭的时候执行销毁方法
多实例-容器不会调用销毁方法

1.指定初始化和销毁的方法

1.基于注解的方式
创建bean

package dong.bean;

public class Cat {

    public Cat(){
        System.out.println("--------构造器----------");
    }

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

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

BeanConfig等同于 <bean class="dong.bean.Cat" init-method="init" destroy-method="destory" ></bean>

package dong.config;

import dong.bean.Cat;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class BeanConfig {

    @Bean(initMethod = "init",destroyMethod = "destroy")
    public Cat cat(){
        return new Cat();
    }
}

run

  package dong;
    
    import dong.config.BeanConfig;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class MainTest {
    
        public static void main(String[] args) {
    
            AnnotationConfigApplicationContext applicationContext1 = new AnnotationConfigApplicationContext(BeanConfig.class);
            System.out.println("容器创建完成");
    
            applicationContext1.close();
    
        }
    
    }

--------构造器----------
--------init------------
容器创建完成
--------destroy------------

2.通过Bean实现InitializingBean接口定义初始化逻辑,实现DisposableBean接口定义销毁逻辑

创建Bean

package dong.bean;

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

public class Dog implements InitializingBean, DisposableBean {

    public Dog() {
        System.out.println("dog 构造器");
    }

    public void destroy() throws Exception {
        System.out.println("dog destroy");
    }


    public void afterPropertiesSet() throws Exception {
        System.out.println("dog init");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值