【死磕 Spring】

  • 时间:
  • 浏览:3
  • 来源:5分3D_5分排列5

BeanNameAware:声明Spring Bean的名字

激活 Aware 最好的方式

接下来三篇文章可能性完整性分析这三件事情,这篇主要分析 Aware 接口。

ServletContextAware:ServletContext

BootstrapContextAware:资源适配器BootstrapContext,如JCA,CCI

实例化 bean 对象: createBeanInstance()

Spring 提供了一系列的 Aware 接口,如下图(要素):



上方却说一要素子类,从这里亲戚亲戚朋友都还可以看到 Spring 提供的 Aware 接口是是何其多。一同从上图亲戚亲戚朋友也看到了十几个 比较熟悉的接口,如 BeanClassLoaderAware、BeanFactoryAware、BeanNameAware,下面就你这个人所有所有所有多多接口来做一个多多简单的演示,先看个人所有所有的定义:

NotificationPublisherAware:JMX通知

下面简单演示下上方五个接口的使用最好的方式:

Aware 接口是一个多多空接口,实际的最好的方式签名由各个子接口来选泽,且该接口通常只会有一个多多接收单参数的 set 最好的方式,该 set 最好的方式的命名最好的方式为 set + 添加接口名中的 Aware 后缀,即 XxxAware 接口,则最好的方式定义为 setXxx(),例如 BeanNameAware(setBeanName),ApplicationContextAware(setApplicationContext)。

Aware 接口定义如下:

PortletContextAware:PortletContext

后置出理 器的应用

而初始化 bean 对象时也是干了三件事情:

则运行结果如下:



从这了亲戚亲戚朋友基本上就都还可以 Aware 真正的含义是哪几种了?感知,实在是 Spring 容器在初始化主动检测当前 bean 是有无实现了 Aware 接口,可能性实现了则回调其 set 最好的方式将相应的参数设置给该 bean ,你这个以前该 bean 就从 Spring 容器中取得相应的资源。最后文章末尾列出要素常用的 Aware 子接口,便于后后查询:

MessageSourceAware:国际化

PortletConfigAware:PortletConfig

运行结果:



从该运行结果都还可以看出,这里只执行了一个多多 Aware 接口的 set 最好的方式,原困 却说痛 getBean() 调用时在激活 Aware 接口时只检测了 BeanNameAware、BeanClassLoaderAware、BeanFactoryAware 一个多多 Aware 接口。可能性将测试最好的方式调整为下面:

LoadTimeWeaverAware:加载Spring Bean时织入第三方模块,如AspectJ

ResourceLoaderAware:底层访问资源的加载器

激活自定义的 init 最好的方式

属性注入: populateBean()

BeanFactoryAware:声明BeanFactory

原文发布时间为:2018-12-24

本文作者:chenssy

本文来自云栖社区合作伙伴“ Java技术驿站”,了解相关信息都还可以关注“chenssy89”微信公众号

ServletConfigAware:ServletConfig

初始化 bean 对象: initializeBean()

doCreateBean() 最好的方式主要干三件事情:

ApplicationEventPublisherAware:应用事件

Aware 的子接口须要提供一个多多 setXxx 最好的方式,亲戚亲戚朋友知道 set 是设置属性值的最好的方式,即 Aware 类接口的 setXxx 最好的方式实在却说设置 xxx 属性值的。 Aware 的含义是感知的、感应的,没有在 Spring 容器中是何如实现感知并设置属性值得呢?亲戚亲戚朋友都还可以从初始化 bean 中的激活 Aware 的最好的方式 invokeAwareMethods() 中看到很多点,如下:



首先判断 bean 实例是有无属于 Aware 接口的范畴,可能性是语录,则调用实例的 setXxx() 最好的方式给实例设置 xxx 属性值,在 invokeAwareMethods() 最好的方式主却说设置 beanName,beanClassLoader、BeanFactory 中一个多多属性值。

测试最好的方式如下:

BeanClassLoaderAware:加载Spring Bean的类加载器

Aware 接口为 Spring 容器的核心接口,是一个多多具有标识作用的超级接口,实现了该接口的 bean 是具有被 Spring 容器通知的能力,通知的最好的方式是采用回调的最好的方式。