zoukankan      html  css  js  c++  java
  • Spring中的一些常用接口

    一、ApplicationContextAware接口

          注:可以在spring容器初始化的时候调用setApplicationContext方法,从而获得ApplicationContext中的所有bean。

    public interface ApplicationContextAware extends Aware {
        void setApplicationContext(ApplicationContext var1) throws BeansException;
    }
    View Code

    二、ServletContextAware 接口

    public interface ServletContextAware extends Aware {
        void setServletContext(ServletContext var1);
    }
    View Code

    三、InitializingBean 接口

          注:这个方法将在所有的属性被初始化后调用,但是会在init前调用,

                在spring初始化bean的时候,如果该bean是实现了InitializingBean接口,并且同时在配置文件中指定了init-method,系统则是先调用afterPropertiesSet方法,然后在调用init-method中指定的方法。

    public interface InitializingBean {
        void afterPropertiesSet() throws Exception;
    }
    View Code

    四、ApplicationListener<ApplicationEvent> 接口

    public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {
        void onApplicationEvent(E var1);
    }
    View Code

    执行顺序

    @Component
    public class StartupListener implements ApplicationContextAware, ServletContextAware,
            InitializingBean, ApplicationListener<ContextRefreshedEvent> {
     
        protected Logger logger = LogManager.getLogger();
     
        @Override
        public void setApplicationContext(ApplicationContext ctx) throws BeansException {
            logger.info("1 => StartupListener.setApplicationContext");
        }
     
        @Override
        public void setServletContext(ServletContext context) {
            logger.info("2 => StartupListener.setServletContext");
        }
     
        @Override
        public void afterPropertiesSet() throws Exception {
            logger.info("3 => StartupListener.afterPropertiesSet");
        }
     
        @Override
        public void onApplicationEvent(ContextRefreshedEvent evt) {
            logger.info("4.1 => MyApplicationListener.onApplicationEvent");
            if (evt.getApplicationContext().getParent() == null) {
                logger.info("4.2 => MyApplicationListener.onApplicationEvent");
            }
        }
     
    }
    View Code

    运行时,输出的顺序如下:

    1 => StartupListener.setApplicationContext
    2 => StartupListener.setServletContext
    3 => StartupListener.afterPropertiesSet
    4.1 => MyApplicationListener.onApplicationEvent
    4.2 => MyApplicationListener.onApplicationEvent
    4.1 => MyApplicationListener.onApplicationEvent

  • 相关阅读:
    win10 开机背景图
    关于在不知道具体实例化哪个窗体时调用该窗体公共变量的方法
    devexpress 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 “lc.exe”已退出,代码为 -1。
    获取打印机设置的纸张参数
    mysql 添加字段语句
    curl模拟post请求
    php CI框架log写入
    winform程序更新
    JSP的EL和JSTL解析
    报错:java.lang.IllegalArgumentException: object is not an instance of declaring class
  • 原文地址:https://www.cnblogs.com/feiyun126/p/7685490.html
Copyright © 2011-2022 走看看