Spring中的Aware接口

Aware接口,是Spring中的一个根接口。Aware的中文含义,是“意识到,察觉到,发觉,发现”,所以该接口的目的,通过实现Aware的子接口,让类添加发觉信息的能力。

常见的Aware直接实现类:

ApplicationContextAware
实现该接口,可以访问Spring容器中缓存的的其他Bean。
获取的ApplicationContext,ApplicationContext接口继承了MessageSource, ApplicationEventPublisher, ResourcePatternResolver,可以实现 {@link ResourceLoaderAware},

  • {@link ApplicationEventPublisherAware} or {@link MessageSourceAware} 的功能。

//TODO file resources 相关
//TODO BeanFactoryPostProcessor

EnvironmentAware
实现该接口,项目启动时,可以获取环境变量配置。

BeanFactoryAware
获取加载该Bean的Bean工厂,可以动态加载Bean.

//TODO BeanFactory和ApplicationContext的区别

ApplicationEventPublisherAware
可以i获取ApplicationEventPublisher,ApplicationEventPublisher可以用来发布事件,结合ApplicationListener来共同使用,下文在介绍ApplicationListener时会详细提到。这个对象也可以通过spring注入的方式来获得

ResourceLoaderAware
可以获取ResourceLoader,ResourceLoader可以获取classpath内所有的资源对象。

BeanNameAware
注入Bean的名字。

ServletContextAware
可以获得ServletContext,ServletContext被称为域对象,是一个全局存储信息的空间。
服务器会为每一个工程创建一个ServletContext对象,工程内所有Servlet都会共享这个Servlet上下文。
应用被移除或服务器关闭时,才会被销毁,可以在整个应用过程中共享数据变量。

setAttribute(String name,Object value);  添加一个域属性

getAttribute(String name)  获取域属性

removeAttribute(String name)  删除域属性

ServletContext接口的初始化参数允许servlet访问与web应用相关的上下文初始化参数,这些由应用开发人员在部署描述符中指定:
getInitParameter
getInitParameterNames

TODO 更多Aware接口实现

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值