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

  • 相关阅读:
    openCV使用
    Object-C知识点 (二) 控件的实用属性
    Linux 配置JDK + MyEclipse
    虚拟机+linux+大杂烩
    THREE.js代码备份——webgl
    THREE.js代码备份——webgl
    THREE.js代码备份——canvas_ascii_effect(以AscII码显示图形)
    THREE.js代码备份——canvas
    THREE.js代码备份——canvas_lines(随机点、画线)
    THREE.js代码备份——线框cube、按键、鼠标控制
  • 原文地址:https://www.cnblogs.com/feiyun126/p/7685490.html
Copyright © 2011-2022 走看看