你了解spring的aware机制吗?

我们在谈到 Spring 解耦能力的时候,大部分其实是在讲 Spring 的 IOC 实现控制反转和依赖注入。但在 Spring 的思想中,解耦并不只是业务代码间的解耦,还包括业务代码与框架间的解耦,Spring 想要做到业务代码对框架的无感知。所以 Spring 有意识的隔离了框架代码和业务代码,正常情况下,我们在业务代码中是无法感知和使用 Spring 框架的一些方法的。

这也带来了一个问题,那就是如果我们真的需要使用 Spring 一些方法,比如获得上下文,比如获得 Bean 容器,这时应该怎么办呢?Spring 提供了一种感知 Spring 框架功能的能力,那就是 Aware 接口。使用 Aware 接口,我们基本可以获得 Spring 所有的核心对象,代价是业务代码和 Spring 框架强耦合。

Aware 接口解决的核心问题是如何在业务代码中获得 Spring 框架内部对象的问题。

Aware 接口用做标记使用,实现该接口就表明需要使用 Spring 框架中的一些对象。

public interface Aware {
   }

Spring 并不会一股脑的将所有的对象都给到实现了 Aware 接口的类,这也不符合迪米特法则。所以 Aware 接口有很多的子接口,这些子接口表明需要使用的 Spring 资源。比如 BeanNameAware,表明需要知道该类的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值