每天一个Java知识点(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文件,里面内容可以随意;

每天一个Java知识点(spring-aware)

资源目录

每天一个Java知识点(spring-aware)

文件内容

2. spring aware演示bean

每天一个Java知识点(spring-aware)

演示bean

解释:

1. 实现BeanNameAware、ResourceLoaderAware接口,获得Bean名称和资源加载的服务;

2. 实现ResourceLoaderAware需重写setResourceLoader;

3. 实现BeanNameAware需重写setBeanName方法。

3. 配置类

每天一个Java知识点(spring-aware)

配置类

4. 运行

每天一个Java知识点(spring-aware)

运行

5. 结果

每天一个Java知识点(spring-aware)

结果

Spring Aware的目的是为了让Bean获得spring容器的服务,因为ApplicationContext接口继承了MessageSource接口、ApplicationEventPublisher接口和ResourceLoader接口,所以bean继承ApplicationContextAware可以获得spring容器的服务,但原则上我们还是要用到什么接口就实现什么接口。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值