Spring容器扩展点之Aware接口

Spring容器扩展点:Aware接口详解
本文介绍了Spring容器中的Aware接口,包括BeanNameAware、ApplicationContextAware等,讲解了如何利用这些接口对bean进行扩展,获取与容器相关的组件,如ApplicationContext、BeanClassLoader等。

Spring容器扩展点之Aware接口

在Spring容器中,提供了许多Aware接口,使用这些接口可以更好的对bean进行扩展,获取许多与容器相关的组件;今天,我们大概来看看Spring中提供的一些Aware接口:

  • BeanNameAware: 该接口只有一个setBeanName方法,如果Spring容器检测到bean实现了该接口,则会将该bean实例的beanName属性注入到该实例中。

  • ApplicationContextAware: 该接口只有个setApplicationContext方法;如果Spring容器检测到bean实现了该接口,则会将Spring的ApplicationContext注入到bean实例中。但一般不建议通过实现该接口获取容器ApplicationContext,因为通过实现接口的方式会增加代码的耦合度,如果希望获取ApplicationContext实例,可以使用一般的注入方式,如使用注解@Autowired,这样便就可以获取ApplicationContext,如:

    @Autowired
    private ApplicationContext applicationContext;
    
  • BeanClassLoaderAware: 该接口有个setBeanClassLoader方法,与前两个接口类似,实现了该接口后,可以向bean中注入加载该bean的ClassLoader

  • BeanFactoryAware: 该接口有个setBeanFactory方法,用来将当前的beanFactory注入到该bean实例中

  • ApplicationEventPublisherAware: ApplicationContext事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationContext的事件处理。其中ApplicationEvent为容器事件。实现接口ApplicationEventPublisherAware的bean可获取ApplicationEventPublisher实例(因为ApplicationContext已实现接口ApplicationEventPublisher接口,所以其实此处默认还是注入了ApplicationContext实例),用于发布事件

  • MessageSourceAware: 实现该接口可,可获取MessageSource实例,该实例用于解析消息的策略接口,支持该类消息的参数化与国际化(因为ApplicationContext已实现接口MessageSource接口,所以其实此处默认还是注入了ApplicationContext实例)

  • NotificationPublisherAware: 实现该接口的bean,可获取JMX通知发布者

  • ResourceLoaderAware: 可获取Spring中配置的加载程序(ResourceLoader),用于对资源进行访问;可用于访问类l类路径或文件资源

  • ServletConfigAware: 该接口仅在wen应用中有效,用于获取ServletConfig

  • ServletContextAware: 该接口仅在wen应用中有效,用于获取ServletContext

  • LoadTimeWeaverAware: 可获取LoadTimeWeaver实例,用于在加载时处理类定义

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值