Spring Aware

  Spring的依赖注入的最大亮点就是所有的Bean对Spring容器的存在是没有意识的。即可以将容器替换成别的容器,如GoogleGuice,这时Bean之间的耦合度很低。

  但是在实际项目中,不可避免地要用到Spring容器本身的功能资源,这时的Bean必须要意识到Spring容器的存在,才能调用Spring所提供的资源,这就是所谓的Spring Aware。其实Spring Aware本来就是Spring设计用来框架内部使用的,若使用了Spring Aware,会将Bean和Spring耦合

Spring提供的Aware接口
BeanNameAware 获得到容器中Bean的名称
BeanFactoryAware 获得当前bean factory,这样可以调用容器的服务
ApplicationContextAware* 当前的application context,这样可以调用容器的服务
MessageSourceAware 获得message source,这样可以获得文本信息
ApplicationEventPublisherAware 应用实践发布器,可以发布事件,DemoPublisher也可以实现这个接口来发布事件
ResourceLoaderAware 获得资源加载器,可以获得外部资源文件

  Spring Aware的目的是为了让Bean获得Spring容器的服务。因为ApplicationContext接口集成了MessageSource接口、ApplicationEventPublisher接口和ResourceLoader接口,所以Bean继承ApplicationContextAware可以获得Spring容器的所有服务,但原则上还是用到什么接口就使用什么接口。

猜你喜欢

转载自www.cnblogs.com/yourGod/p/9112535.html