![从企业级开发到云原生微服务:Spring Boot实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/257/33831257/b_33831257.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.4 Spring Aware容器
程序员的主要工作是编写业务逻辑代码,业务逻辑代码一般都是技术无关性的,即Spring代码不会侵入业务逻辑代码中。虽然我们使用了很多Spring的注解,但注解属于元数据(和XML一样),不属于代码侵入。
但有些时候却不得不让自己的代码和Spring框架耦合,通过实现相应的Aware接口,注入其对应的Bean。
◎BeanNameAware:可获得beanName,即Bean的名称。
◎ResourceLoaderAware:可获得ResourceLoader,即用来加载资源的Bean。
◎BeanFactoryAware:可获得BeanFactory,即容器的父接口,用于管理Bean的相关操作。
◎EnvironmentAware:可获得Environment,即当前应用的运行环境。
◎MessageSourceAware:可获得MessageSource,即用来解析文本信息的Bean。
◎ApplicationEventPublisherAware:可获得ApplicationEventPublisher,即用来发布系统时间的Bean。
◎ApplicationContextAware:可自动注入ApplicationContext,即容器本身。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_69_02.jpg?sign=1739041819-tRST3nB5NKit8wTiv6V7xP2lPuIpV1lV-0-5086aaa0b9346bc7f0a7adc227a597d8)
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_70_01.jpg?sign=1739041819-QHdAXCm6FFvyNAydFtGmzJruXKppp48T-0-18afd9d308424ac9c144b03d1c96f67a)
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_71_01.jpg?sign=1739041819-hUORacNnsuGNhIQMIaAwxK3EoKk0O6uz-0-ab3059b5d5f8aa83e3a5c0b5804d720b)
在JavaConfig中执行如下代码,执行结果如图3-15所示。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_71_02.jpg?sign=1739041819-bHKVQMIHdHK5lNeSq7yFKURYLN3iVxzA-0-22425c614e3f95e83b51b95b138fc3bd)
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_71_03.jpg?sign=1739041819-gw4FKE7WKgJKbGvewfU4OrYZZO1ExaWm-0-0a1fd466018a9970279d75629a21c400)
图3-15