国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Aware接口

why_rookie / 1100人閱讀

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

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

接口名 描述
ApplicationContextAware 實現了這個接口的類都可以獲取到一個 ApplicationContext 對象. 可以獲取容器中的所有 Bean
ApplicationEventPublisherAware 在 bean 中可以得到應用上下文的事件發布器, 從而可以在Bean中發布應用上下文的事件.
BeanClassLoaderAware 獲取 bean 的類加載器
BeanFactoryAware 獲取 bean 的工廠
BeanNameAware 獲取 bean 在容器中的名字
BootstrapContextAware 獲取 BootstrapContext
LoadTimeWeaverAware 加載Spring Bean時織入第三方模塊, 如AspectJ
MessageSourceAware 主要用于獲取國際化相關接口
NotificationPublisherAware 用于獲取通知發布者
ResourceLoaderAware 初始化時注入ResourceLoader
ServletConfigAware web開發過程中獲取ServletConfig
ServletContextAware web開發過程中獲取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;
    }

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

}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72463.html

相關文章

  • Spring Aware 到底是什么?

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

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

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

    Acceml 評論0 收藏0
  • 慕課網_《Spring入門篇》學習總結

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

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

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

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

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

    Alfred 評論0 收藏0

發表評論

0條評論

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