springIoc容器,依赖注入,bean后置处理器,aop实现机制分析
2025-4-20
| 2025-4-20
Words 483Read Time 2 min
type
status
date
slug
summary
tags
category
icon
password
原生spring如何实现依赖注入,singleton,prototype
依赖注入:比如A类里面引用了B类,spring使用了@Autowaired和@Resource注解,那么底层是如何实现的,singleton是返回单例的,prototype是返回多例的,底层是如何实现的。

代码

notion image
image-20230218203241917

测试

可以看到,通过@Component注解注入的对象是单例的。
notion image
image-20230218203316324

单例和多例

@Scope(value = “prototype”)表示以多实例的形式返回bean
notion image
image-20230218204358231

依赖注入

思考

思考1:是如何使用一个注解就可以返回多个对象的。
思考2:如何使用@Resource或者@Autowired是完成依赖注入的。

后置处理器

之前用过,可以指定执行init方法或者destory方法

AOP

之前的代码不再贴
1) AOP 底层是基于 BeanPostProcessor 机制的.
2) 即在 Bean 创建好后,根据是否需要 AOP 处理,决定返回代理对象,还是原生 Bean
3) 在返回代理对象时,就可以根据要代理的类和方法来返回
4) 其实这个机制并不难,本质就是在 BeanPostProcessor 机制 + 动态代理技术
5) 下面我们就准备自己来实现 AOP 机制, 这样小伙伴们就不在觉得 AOP 神秘,通透很多

代理对象

为什么他返回了代理对象,这个过程是如何实现的?
因为他被标识为切面类包括了,@Before,@After这些。
notion image
image-20230218215205123

下一步实现整个流程

notion image
image-20230218215708247
notion image
image-20230218215804809
springmvc数据的存取SpringBoot的快速入门1-4
Loading...