成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Spring Aware接口

why_rookie / 1106人閱讀

摘要:容器管理的一般不需要了解容器的狀態(tài)和直接使用容器但是在某些情況下是需要在中直接對容器進(jìn)行操作的可以通過特定的接口來完成接口有以下這些接口名描述實(shí)現(xiàn)了這個接口的類都可以獲取到一個對象可以獲取容器中的所有在中可以得到應(yīng)用上下文的事件發(fā)布器從而可

容器管理的 Bean 一般不需要了解容器的狀態(tài)和直接使用容器, 但是在某些情況下, 是需要在 Bean 中直接對IOC容器進(jìn)行操作的, 可以通過特定的 Aware 接口來完成. aware 接口有以下這些:

接口名 描述
ApplicationContextAware 實(shí)現(xiàn)了這個接口的類都可以獲取到一個 ApplicationContext 對象. 可以獲取容器中的所有 Bean
ApplicationEventPublisherAware 在 bean 中可以得到應(yīng)用上下文的事件發(fā)布器, 從而可以在Bean中發(fā)布應(yīng)用上下文的事件.
BeanClassLoaderAware 獲取 bean 的類加載器
BeanFactoryAware 獲取 bean 的工廠
BeanNameAware 獲取 bean 在容器中的名字
BootstrapContextAware 獲取 BootstrapContext
LoadTimeWeaverAware 加載Spring Bean時織入第三方模塊, 如AspectJ
MessageSourceAware 主要用于獲取國際化相關(guān)接口
NotificationPublisherAware 用于獲取通知發(fā)布者
ResourceLoaderAware 初始化時注入ResourceLoader
ServletConfigAware web開發(fā)過程中獲取ServletConfig
ServletContextAware web開發(fā)過程中獲取ServletContext信息
ApplicationContextAware 接口

這個接口比較常用, ApplicationContextAware 接口中只有一個方法, 用來獲取容器中的所有 Bean.

void setApplicationContext(ApplicationContext applicationContext) throws BeansException;
@Component
public class Test implements ApplicationContextAware {

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        
    }
}

這里提供一個常用的工具類

@Component
public class SpringUtil implements ApplicationContextAware {

    private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(
        ApplicationContext applicationContext) throws BeansException {
        SpringUtil.applicationContext = applicationContext;
    }

    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    /**
     * 根據(jù)Bean名稱獲取實(shí)例
     * 
     * @param name
     * 
     *            Bean注冊名稱
     * @return bean實(shí)例
     */
    @SuppressWarnings("unchecked")
    public static  T getBean(
        String name) throws BeansException {
        return (T) applicationContext.getBean(name);
    }

}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72463.html

相關(guān)文章

  • Spring Aware 到底是什么?

    摘要:代碼示例自定義實(shí)現(xiàn)注冊運(yùn)行和預(yù)想一樣,輸出結(jié)果為,如果移除掉注解的屬性,輸出結(jié)果為總結(jié)在大多數(shù)情況下,我們應(yīng)該避免使用任何接口,除非我們需要它們。 showImg(https://segmentfault.com/img/remote/1460000019807821?w=1920&h=1080); 通過如下前序兩篇文章: Spring Bean 生命周期之我從哪里來? Spring...

    mingzhong 評論0 收藏0
  • Spring源碼原理篇(一)

    摘要:也是屬于方法調(diào)用棧的一環(huán),進(jìn)去有類似一段偽代碼這段代碼通過遍歷得到所有的,然后挨個執(zhí)行重寫的方法,倘若有一個方法返回的為,那么循環(huán)就會跳出,意味著下面的方法不會被執(zhí)行。 Spring源碼原理篇--容器初始化&Bean后置處理器 本篇主要是講解IOC容器初始化過程中大體進(jìn)行了哪一些工作,以及Bean后置處理器的工作原理和BeanPostProcessor在底層的使用。 環(huán)境準(zhǔn)備 編譯器...

    Acceml 評論0 收藏0
  • 慕課網(wǎng)_《Spring入門篇》學(xué)習(xí)總結(jié)

    摘要:入門篇學(xué)習(xí)總結(jié)時間年月日星期三說明本文部分內(nèi)容均來自慕課網(wǎng)。主要的功能是日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等。 《Spring入門篇》學(xué)習(xí)總結(jié) 時間:2017年1月18日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個人學(xué)習(xí)源碼:https://git...

    Ververica 評論0 收藏0
  • Spring源碼分析:BeanPostProcessor原理

    摘要:即,的后置處理器,它的作用就是在的初始化方法前跟后進(jìn)行攔截處理。如何注冊后置處理器我們暫不作分析,著重說一下,后置處理器是如何工作的。 BeanPostProcessor即,Bean的后置處理器,它的作用就是在Bean的初始化方法前跟后進(jìn)行攔截處理。我們都知道,要想在Bean的初始化方法前后進(jìn)行工作,那必須在Bean實(shí)例創(chuàng)建完成之后,init方法執(zhí)行之前,后置處理器就已經(jīng)在容器中了,所...

    jackwang 評論0 收藏0
  • Spring IOC 容器源碼分析 - 余下的初始化工作

    摘要:簡介本篇文章是容器源碼分析系列文章的最后一篇文章,本篇文章所分析的對象是方法,該方法用于對已完成屬性填充的做最后的初始化工作。后置處理器是拓展點(diǎn)之一,通過實(shí)現(xiàn)后置處理器接口,我們就可以插手的初始化過程。 1. 簡介 本篇文章是Spring IOC 容器源碼分析系列文章的最后一篇文章,本篇文章所分析的對象是 initializeBean 方法,該方法用于對已完成屬性填充的 bean 做最...

    Alfred 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<