跳至主要內容

Spring的Aware

牧歌...大约 2 分钟

Spring的Aware

ApplicationContextAware

ApplicationContext创建一个实现 org.springframework.context.ApplicationContextAware接口的对象实例时,会为该实例提供对该ApplicationContext的引用。以下为ApplicationContextAware接口的定义

public interface ApplicationContextAware {
    void setApplicationContext(ApplicationContext applicationContext) throws BeansException;
}

因此,Bean可以通过接口或通过将引用转换为该接口的子类

BeanNameAware

ApplicationContext创建一个实现 org.springframework.beans.factory.BeanNameAware接口的类时,该类被提供了对其关联对象定义中定义的名称的引用。以下清单显示了 BeanNameAware 接口的定义:

public interface BeanNameAware {

    void setBeanName(String name) throws BeansException;
}

在填充普通 bean 属性之后但在初始化回调(例如InitializingBean.afterPropertiesSet()自定义 init 方法)之前调用回调。

其他Aware

Spring 提供了广泛的Aware回调接口,让 bean 向容器指示它们需要特定的基础设施依赖项。作为一般规则,名称表示依赖类型。

名称注入依赖解释...
ApplicationContextAware声明ApplicationContext.ApplicationContextAwareBeanNameAwareopen in new window
ApplicationEventPublisherAware封闭的事件发布者ApplicationContextApplicationContext的附加功能open in new window
BeanClassLoaderAware类加载器用于加载 bean 类。实例化 Beanopen in new window
BeanFactoryAware声明BeanFactory.BeanFactoryopen in new window
BeanNameAware声明 bean 的名称。ApplicationContextAwareBeanNameAwareopen in new window
LoadTimeWeaverAware定义的编织器,用于在加载时处理类定义。在 Spring 框架中使用 AspectJ 进行加载时编织open in new window
MessageSourceAware用于解析消息的配置策略(支持参数化和国际化)。ApplicationContext的附加功能open in new window
NotificationPublisherAwareSpring JMX 通知发布者。通知open in new window
ResourceLoaderAware为对资源进行低级访问而配置的加载程序。资源open in new window
ServletConfigAware当前ServletConfig容器在其中运行。仅在可感知网络的 Spring 中有效 ApplicationContext春季MVCopen in new window
ServletContextAware当前ServletContext容器在其中运行。仅在可感知网络的 Spring 中有效 ApplicationContext春季MVCopen in new window
上次编辑于:
贡献者: wangwenlei,wenleiwang
评论
  • 按正序
  • 按倒序
  • 按热度