4.1Aware回调模拟实现 在createBean的时候,我们想在加了Component注解的类里面加一个字段beanName,该字段存储bean对象的name属性 spring会提供一个接口BeanNameAware来实现 package com.rainwood.spring; public interface BeanNameAware { void setBeanName(String name); }
查看Spring相关源码,会发现很多类都实现了各种 xxxAware 接口。为什么实现 Aware 接口,作用是什么? 先看Aware 接口的文档说明 简单翻译一下,实现Aware接口的bean可以被Spring 容器通过回掉方式处理,但是这个接口只是一个标记接口,类似于java.io.Serializable 用于标记对象可序列
BeanFactoryAware 让 Bean 获取配置它们的 BeanFactory 的引用 BeanNameAware 让 Bean 获取自己在 BeanFactory 配置中的 Name ApplicationContextAware 让 Bean 获取 ApplicationContext 上下文对象 EmbeddedValueResolverAware 让 Bean 获取配置文件内容(解析配置文件,@
BeanNameAware作用:让Bean对Name或id有知觉 package com.example.demo.biz.service;import org.springframework.beans.factory.BeanNameAware;import org.springframework.stereotype.Service;/** * BeanNameAware作用:让Bean对Name有知觉 */@Servicepublic class BizService imple
6.6.2 ApplicationContextAware和BeanNameAware 当ApplicationContext创建了一个实现org.springframework.context.ApplicationContextAware接口的对象实例时,就为该实例提供了ApplicationContext引用。 public interface ApplicationContextAware { void setApplicationContext