Spring Aware容器感知技术

作者: Java技术栈 | 来源:发表于2017-08-24 09:06 被阅读33次

    Spring Aware是什么

    Spring提供Aware接口能让Bean感知Spring容器的存在,即让Bean可以使用Spring容器所提供的资源。

    Spring Aware的分类

    几种常用的Aware接口如下。

    Aware接口说明

    ApplicationContextAware能获取Application Context调用容器的服务

    ApplicationEventPublisherAware应用事件发布器,可以用来发布事件

    BeanClassLoaderAware能获取加载当前Bean的类加载器

    BeanFactoryAware能获取Bean Factory调用容器的服务

    BeanNameAware能获取当前Bean的名称

    EnvironmentAware能获取当前容器的环境属性信息

    MessageSourceAware能获取国际化文本信息

    ResourceLoaderAware获取资源加载器读取资源文件

    ServletConfigAware能获取到ServletConfig

    ServletContextAware能获取到ServletContext

    更多的可以看它的继承图。

    Spring Aware的使用

    如要获取容器中的某个Bean,可以继承ApplicationContextAware,让这个Bean拥有调用容器服务的能力。

    importorg.springframework.beans.BeansException;

    importorg.springframework.context.ApplicationContext;

    importorg.springframework.context.ApplicationContextAware;

    publicclassSpringAppContextimplementsApplicationContextAware{

    privatestaticApplicationContextapplicationContext=null;

    @Override

    publicvoidsetApplicationContext(ApplicationContextapplicationContext)throwsBeansException{

    if(SpringAppContext.applicationContext==null){

    SpringAppContext.applicationContext=applicationContext;

    }

    }

    publicstaticApplicationContextgetApplicationContext(){

    returnapplicationContext;

    }

    publicstaticObjectgetBean(Stringname){

    returngetApplicationContext().getBean(name);

    }

    publicstaticT getBean(Classclazz){

    returngetApplicationContext().getBean(clazz);

    }

    publicstaticT getBean(Stringname,Classclazz){

    returngetApplicationContext().getBean(name,clazz);

    }

    }

    欢迎大家转发到朋友圈,和朋友们一起提升自己。

    相关文章

      网友评论

        本文标题:Spring Aware容器感知技术

        本文链接:https://www.haomeiwen.com/subject/mrysdxtx.html