Spring各种回调接口

Spring内置了用于不同目的的大量回调接口,很多场合都会使用到它们。使用这些回调接口往往能够达到事半功倍的效果。一旦目标受管Bean实现了回调接口,则当DI容器实例化受管Bean时,DI容器就会自动调用这些回调接口所定义的方法,进而将相关对象注入进来。最终,受管Bean便可使用它们了。

1.  BeanClassLoaderAware回调接口

BeanClassLoaderAware回调接口可让受管Bean本身知道它是由哪一类装载器负责装载的。这一回调接口的定义如下。

public interface BeanClassLoaderAware {  
  
     void setBeanClassLoader(ClassLoader classLoader);  
  
} 

2. ApplicationContextAware 回调接口

类似于BeanFactoryAware回调接口,ApplicationContextAware使得受管Bean能够感知到IoC容器的存在, 它定义的回调方法如下。注意,ApplicationContextAware仅仅适合于ApplicationContext容器。

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


3. MessageSourceAware回调接口

MessageSourceAware回调接口负责将MessageSource对象注入到当前受管Bean实例中,其定义如下。通过使用MessageSource对象,受管Bean能够获得国际化和本地化消息支持。

public interface MessageSourceAware {   
    void setMessageSource(MessageSource messageSource);  
} 

4.  ApplicationEventPublisherAware回调接口

ApplicationEventPublisherAware回调接口负责将ApplicationEventPublisher对象注入到当前受管Bean实例中,以供分发事件使用,其定义如下。

public interface ApplicationEventPublisherAware {   
    void setApplicationEventPublisher(ApplicationEventPublisher   applicationEventPublisher);  
} 

5.  ResourceLoaderAware回调接口

ResourceLoaderAware回调接口负责将ResourceLoader对象注入到当前的受管Bean实例中,其定义如下。当受管Bean获得ResourceLoader对象后,它便能够通过它获得各种资源。

public interface ResourceLoaderAware {   
    void setResourceLoader(ResourceLoader resourceLoader);  
} 

6. BeanFactoryAware回调接口

如果当前受管Bean实现了BeanFactoryAware接口,则运行时它可以使用BeanFactory显式查找其依赖的对象。显然,这同Spring耦合在一起。BeanFactoryAware接口定义如下。

public interface BeanFactoryAware {   
    void setBeanFactory(BeanFactory beanFactory) throws BeansException;  
} 

7. BeanNameAware回调接口

如果受管Bean实现了BeanNameAware回调接口,则受管Bean本身的idname)会被BeanFactory注入到受管Bean中。BeanNameAware接口的定义如下。

public interface BeanNameAware {   
    void setBeanName(String name);  
} 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值