spring aware 接口是干嘛的(Spring篇之Aware容器感知技术)

Spring提供Aware接口能让bean感知Spring容器的存在,即让Bean可以使用Spring容器所提供的资源,今天小编就来说说关于spring aware 接口是干嘛的?下面更多详细答案一起来看看吧!

spring aware 接口是干嘛的(Spring篇之Aware容器感知技术)

spring aware 接口是干嘛的

一、Spring Aware是什么

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

二、Spring Aware的分类

几种常用的Aware接口如下:

  • applicationContextAware能获取
  • Application Context调用容器的服务
  • ApplicationEventPublisherAware应用事件发布器,可以用来发布事件
  • BeanClassLoaderAware能获取加载当前Bean的类加载器
  • BeanFactoryAware能获取Bean Factory调用容器的服务
  • BeanNameAware能获取当前Bean的名称
  • EnvironmentAware能获取当前容器的环境属性信息
  • MessageSourceAware能获取国际化文本信息
  • ResourceLoaderAware获取资源加载器读取资源文件
  • ServletConfigAware能获取到
  • ServletConfigServletContextAware能获取到ServletContext

三、Spring Aware的使用

如要获取容器中的某个Bean,可以继承ApplicationContextAware,让这个Bean拥有调用容器服务的能力。使用场景举例,在springmvc的filter中无法Autowired依赖注入bean就可以使用如果方式取

import org.springframework.beans.BeansException;

import org.springframework.context.ApplicationContext;

import org.springframework.context.ApplicationContextAware;

import org.springframework.stereotype.Component;

@Component

public class AppUtil implements ApplicationContextAware {

private static ApplicationContext applicationContext;

@Override

public void setApplicationContext(ApplicationContext arg0) throws BeansException {

applicationContext = arg0;

}

public static Object getObject(String id) {

Object object = null;

object = applicationContext.getBean(id);

return object;

}

}

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页