java的有关常识(每天一个Java知识点)
每天分享一个Java知识点,码字不易,喜欢的可以关注一波,共同学习。20191129
今天的知识点是:Spring-Aware。
我们知道,spring的依赖注入的最大亮点就是你所有的bean对spring容器的存在是没有意识的。即:你可以将你的容器替换成别的容器,比如Google Guice,这时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:
应用事件发布器,可以发布事件
ResourLoaderAware:
获得资源加载器,可以获得外部资源文件
代码实例:
1. 准备。在aware包下新建一个text.txt文件,里面内容可以随意;
资源目录
文件内容
2. spring aware演示bean
演示bean
解释:
1. 实现BeanNameAware、ResourceLoaderAware接口,获得Bean名称和资源加载的服务;
2. 实现ResourceLoaderAware需重写setResourceLoader;
3. 实现BeanNameAware需重写setBeanName方法。
3. 配置类
配置类
4. 运行
运行
5. 结果
结果
Spring Aware的目的是为了让Bean获得spring容器的服务,因为ApplicationContext接口继承了MessageSource接口、ApplicationEventPublisher接口和ResourceLoader接口,所以bean继承ApplicationContextAware可以获得spring容器的服务,但原则上我们还是要用到什么接口就实现什么接口。
想获取完整面试题及答案的同学请点赞、关注并转发。私信楼主:“Java面试题”获取完整资料,更有超全spring、jvm、linux、docker等电子书相送。更有整理的200多页的面试重点知识点,非常全面,需要的私信。
其它文章:
每天分享一点Java知识(spring-aop)
每天一个Java知识点(spring-event)
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com