• Spring Bean的生命周期理解


    《Spring in action》 

    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.BeanFactoryAware;
    import org.springframework.beans.factory.BeanNameAware;
    import org.springframework.beans.factory.DisposableBean;
    import org.springframework.beans.factory.InitializingBean;
    import org.springframework.beans.factory.config.BeanPostProcessor;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;
    
    @Component
    public class MyBean implements BeanNameAware,BeanFactoryAware,ApplicationContextAware,InitializingBean,BeanPostProcessor,DisposableBean {
        
        ApplicationContext applicationContext;
        BeanFactory beanFactory;
        String beanname;
        String properties;
        public MyBean(){
            System.out.println("MyBean 被创建了");
        }
        @Override
        public void setBeanName(String name) {
            System.out.println("BeanNameAware的setBeanName:"+name);
            beanname=name;
        }
        @Override
        public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
            System.out.println("BeanFactoryAware的setbeanFactory:"+beanFactory);
            this.beanFactory=beanFactory;
        }
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            System.out.println("ApplicationContextAware的setApplicationContext:"+applicationContext);
            this.applicationContext=applicationContext;
        }
        //实现BeanPostProcessor的方法会被容器自动调用;
        @Override
        public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
            System.out.println(beanName+"开始实例化!");
            return bean;//对bean处理后放回容器,如果return null 容器将没有bean;
        }
        @Override
        public void afterPropertiesSet() throws Exception {
            properties="sdfsf";
            System.out.println("InitializingBean的afterPropertiesSet!");
        }
        @Override
        public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
            System.out.println(beanName+"实例化完成!");
            return bean;
        }
        @Override
        public void destroy() throws Exception {
            System.out.println("Bean销毁——destroy:"+this.toString());
        }
    }
  • 相关阅读:
    VS2010-MFC(常用控件:列表框控件ListBox)
    VS2010-MFC(常用控件:按钮控件的编程实例)
    VS2010-MFC(常用控件:按钮控件Button、Radio Button和Check Box)
    VS2010-MFC(常用控件:编辑框Edit Control)
    VS2010-MFC(常用控件:静态文本框)
    VS2010-MFC(对话框:颜色对话框)
    VS2010-MFC(对话框:字体对话框)
    VS2010-MFC(对话框:文件对话框)
    VS2010-MFC(对话框:消息对话框)
    [洛谷P2113] 看球泡妹子
  • 原文地址:https://www.cnblogs.com/mryangbo/p/10807082.html
Copyright © 2020-2023  润新知