spring bean 生命周期

方法一

使用xml方式,指定初始化方法和销毁方法


        

方法二

使用@Bean注解指定初始化方法和销毁方法

 @Bean(initMethod = "afterPropertiesSet", destroyMethod = "destroy")
    public Color color(){
        return new Color();
    }

方法三

实现InitializingBean, DisposableBean接口

public class Color implements InitializingBean, DisposableBean {

    public Color() {
        System.out.println("构造方法……");
    }

    public void destroy() throws Exception {
        System.out.println("销毁方法……");
    }

    public void afterPropertiesSet() throws Exception {
        System.out.println("属性赋值后……");
    }
}

方法四

使用注解@PostConstruct、@PreDestroy

public class Red {
    public Red() {
        System.out.println("red 构建……");
    }

    @PostConstruct
    public void init () {
        System.out.println("postConstruct……");
    }

    @PreDestroy
    public void destroy(){
        System.out.println("destroy……");
    }
}

方法五

实现BeanPostProcessor接口

@Component
public class MyBeanPostProcessor implements BeanPostProcessor {
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(beanName + "---------------postProcessBeforeInitialization……");
        return bean;
    }

    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println(beanName + "---------------postProcessAfterInitialization……");
        return bean;
    }
}
  • BeanPostProcessor(后置处理器)不是针对某个单独的bean,而是所有在容器中的bean都会执行其定义的方法。
  • postProcessBeforeInitialization:在bean的初始化方法之前执行。
  • postProcessAfterInitialization:在bean的初始化方法之后执行。

你可能感兴趣的:(学习笔记,spring,bean,生命周期)