Spring Aware
但是在实际中,不可避免的要用到Spring容器本身的功能资源,这是你的Bean必须要意识到Spring容器的存在,才能调用Spring所提供的资源,这就是所谓的Spring Aware,其实Spring Aware 本来就是Spring设计用来框架内部使用的,若使用了Spring Aware,你的Bean 将会和Spring 框架耦合。
-
Spring提供的Aware 接口:
BeanNameAware:获得到容器中Bean的名称
BeanFactoryAware:获得当前bean factory,这样可以调用容器的服务
ApplicationContextAware*:当前的application context,这样可以调用容器的服务
ApplicationEventPublisherAware:应用事件发布器,可是发布事件,DemoPublisher也可实现这个接口来发布事件
ResourcedLoaderAware:获得资源加载器,可以获得外部资源文件
-
Spring Aware 的目的是为了让Bean获得Spring容器的服务。因为ApplicationContext接口集成了MessageSource接口、ApplicationEventPublisher接口和ResourceLoader接口,所以Bean继承ApplicationContextAware 可以获得Spring容器的所有服务,但原则上我们还是用什么接口就实现什么接口。