【SpringBoot_ANNOTATIONS】自动装配 04 Aware 注入Spring底层组件 原理
自动装配 04 Aware 注入Spring底层组件 & 原理
总接口:
Aware
- 自定义组件想要使用Spring容器底层的一些组件(ApplicationContext BeanFactory 等等)
- 需要让自定义组件实现xxAware接口:在创建对象的时候会调用接口规定的方法注入相关组件 总体参照
Aware
接口 ,把Spring底层一些组件注入到自定义的bean中 - xxxAware功能:使用xxProcessor 如ApplicationContextAware ==》 ApplicationContextAwareProcessor,利用后置处理器判断实现了哪个接口,就将Bean转成相应的接口类型,再选择注入相应类型的applicationContext
/*** 生命周期 感知接口测试*/
@Component//注入后自动调用实现的感知接口方法
public class Red implements ApplicationContextAware, BeanNameAware, EmbeddedValueResolverAware {private ApplicationContext applicationContext;@Overridepublic void setBeanName(String name) {System.out.println("调用了 setBeanName");System.out.println("当前bean的名字 " + name);}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext = applicationContext;System.out.println("调用了 setApplicationContext");}/*** 解析占位符* @param resolver*/@Overridepublic void setEmbeddedValueResolver(StringValueResolver resolver) {System.out.println("调用了 setEmbeddedValueResolver");String resolveString = resolver.resolveStringValue(" hello ${os.name} ; age #{22-1}");System.out.println("解析的字符串 " + resolveString);}
}
配置类
@Configuration
@ComponentScan(value = {"com.example.annotations.service","com.example.annotations.dao","com.example.annotations.controller","com.example.annotations.bean"})
public class MainConfig4Autowire {}
测试
@Testvoid autowiredTest(){//配置类测试System.out.println("准备创建容器");AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig4Autowire.class);System.out.println("容器创建完毕");//关闭容器applicationContext.close();System.out.println("容器已关闭");}
测试结果:
【SpringBoot_ANNOTATIONS】自动装配 04 Aware 注入Spring底层组件 原理相关推荐
- 一步一步手绘Spring DI运行时序图(Spring 自动装配之依赖注入)
相关内容: 架构师系列内容:架构师学习笔记(持续更新) 一步一步手绘Spring IOC运行时序图一(Spring 核心容器 IOC初始化过程) 一步一步手绘Spring IOC运行时序图二(基于XM ...
- java 自动装配_spring自动装配是什么?spring自动装配方式
Spring是受欢迎的企业级Java应用程序开发框架,数以百万的来自世界各地的开发人员都在使用 Spring 框架创建高性能.易于测试和可重用的代码. 自动装配是Spring框架的重要功能,是使用Sp ...
- Spring底层核心原理
Spring底层整体了解 Bean的生命周期底层原理 依赖注入底层原理 初始化底层原理 推断构造底层原理 AOP底层原理 Spring事务底层原理 Spring是如何创建一个对象的 Annotatio ...
- 【Spring】Spring底层核心原理解析
本文内容索引: 1.Bean的生命周期底层原理 2.依赖注入底层原理 3.初始化底层原理 4.推断构造方法底层原理 5.AOP底层原理 6.Spring事务底层原理 但都只是大致流程,后续会针对每个 ...
- Spring源码学习(一)--Spring底层核心原理解析
目录 Spring中是如何创建一个对象? Bean的创建过程 推断构造方法 AOP大致流程 Spring事务 最近在跟视频学习spring源码,将每节课记录下来,以后好来复习. 首先把Spring中核 ...
- spring 常用注解 原理 逻辑 代码演示
01 spring 常用注解 原理 逻辑 代码演示 这是自己观看视频的笔记 文章目录 01 spring 常用注解 原理 逻辑 代码演示 一.组件注册 1.1-spring注解驱动开发 1.2-组件注 ...
- spring注解驱动开发-4 Spring 自动装配
Spring 自动装配 前言 Spring 自动装配的几种方式 1.@Autowired @Qualifier("组件id") @Primary 2.@Resource方式 3.@ ...
- Spring的bean的注创建、依赖注入、自动装配
一.bean 定义:被称作 bean 的对象是构成应用程序的支柱也是由 Spring IoC 容器管理的.bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象. bean作用 ...
- spring 注入方式和自动装配介绍
spring四种依赖注入方式 博客分类: spring 平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统 ...
- Java的注解机制——Spring自动装配的实现原理
JDK1.5加入了对注解机制的支持,实际上我学习Java的时候就已经使用JDK1.6了,而且除了@Override和@SuppressWarnings(后者还是IDE给生成的--)之外没接触过其他的. ...
最新文章
- Matlab编程与数据类型 -- 开关语句switch/end
- java感谢_这三天看完Java入门第一季和第二季的成果!纪念一下!感谢Java入门的作者!...
- 页面样式乱了,但是又感觉各种js,css都引入了
- 高级数据结构研究-B树系列以及红黑树
- mac开发的时候必须要xcode
- tinyint对应什么数据类型_学习西门子S7-200系列PLC不得不掌握的数据类型
- 使用select一个表更新另一个表(批量更新)
- 线程控制原语之pthread_self和pthread_create函数
- 资深面试官解答:大厂月薪过20K的测试工程师,都需要满足哪些要求?
- [2003] Can't connect to MySQL server on 'localhost' (13) 错误解决方法 【主要是linux下php连接不上mysq时】...
- 淡入淡出效果 (jQuery)
- PADS软件如何导出BOM
- 西安理工大学计算机视觉与应用,赵明华 - 西安理工大学 - 计算机科学与工程学院...
- VHDL学习--分频器
- 空间解析几何之向量运算
- python求不规则图形面积_使用Python生成不规则形状的图形
- 中国商业环境发展的五个阶段浅析
- ipv6笔记无状态地址自动配置及状态
- 微信公众号图文消息添加word附件教程详解
- Python数据分析之商品数据分析
热门文章
- (转)对冲基金投身“另类数据”淘金热
- 中保车服灾备云,为保险公司“上保险”
- 机器学习笔记(二十五):支撑向量机(SVM)
- 【优化算法】动物迁徙优化算法(AMO)【含Matlab源码 1806期】
- 【图像处理基础】基于matlab图像RGB+HSV分布图【含Matlab源码 234期】
- 【数字信号调制】基于matlab GUI PCM编码+QAM调制【含Matlab源码 1095期】
- 【图像隐写】基于matlab DCT图像隐写【含Matlab源码 365期】
- 【路径规划】基于matlab粒子群算法机器人栅格路径规划【含Matlab源码 018期】
- ai技术领先的企业_领先企业如何扩展AI
- scikit keras_使用Scikit-Learn,Scikit-Opt和Keras进行超参数优化