美文网首页
由Aware引发的思考

由Aware引发的思考

作者: 撸代码的大白 | 来源:发表于2020-05-20 16:45 被阅读0次

    之前文章讲过,我们学习源码的很大原因是学习一些奇技淫巧。Aware就是其中之一。

    spring中Aware是个接口,不要求实现任何方法,它的主要作用是做个标记。

    Aware有很多子接口,主要的有以下几个:

    BeanFactoryAware:setBeanFactory

    ApplicationContextAware:setApplicationContext

    EnvironmentAware:setEnvironment

    BeanNameAware:setBeanName

    简单来说,实现什么Aware就能获得对应的资源。

    怎么做到的呢,spring通过后置处理器,判断bean实现了哪些aware接口,然后调用其set方法,将需要的资源,设置到属性中去。

    所以如果想在业务类里获得容器,可以实现ApplicationContextAware接口;如果想获取bean工厂,可以实现BeanFactoryAware;如果想获得环境变量,可以实现EnvironmentAware;

    抛开spring本身。这也给我们的开发提供了一些思路。接口不但可以规定行为是什么,还可以做为标识来用,甚至标识和行为配合来用。

    实现这些接口的对象可以被识别出来,进行统一的设置或者预处理。

    可以看作一种划分维度,当然从接口的本来功能理解,这些对象都有setxxx的行为,虽然setxxx是需要外界资源给予的,但仍然是其行为。

    也可以理解不那么灵活的依赖注入。

    相关文章

      网友评论

          本文标题:由Aware引发的思考

          本文链接:https://www.haomeiwen.com/subject/zdhnohtx.html