Spring高级篇
文章平均质量分 86
dudu0917
这个作者很懒,什么都没留下…
展开
-
Spring高级篇-手写实现动态代理
手写实现JDK动态代理手写实现Cglib代理原创 2022-05-23 22:25:11 · 335 阅读 · 0 评论 -
Spring高级篇-AOP的4种实现方式底层原理
AOP 底层实现方式之一是代理,由代理结合通知和目标,提供增强功能。除此以外,aspectj 提供了两种另外的 AOP 底层实现实现方式底层原理区别|ajc 编译器通过 ajc 编译器在编译 class 类文件时,就把通知的增强功能,织入到目标类的字节码中编译期间增强agent探针通过 agent 在加载目标类时,修改目标类的字节码,织入增强功能加载期间通过ASM技术增强jdk动态代理jdk 动态代理要求目标必须实现接口,生成的代理类实现相同接口,因此代理与目标原创 2022-05-21 23:32:42 · 989 阅读 · 0 评论 -
Spring高级篇-Bean的作用域
在当前版本的 Spring 和 Spring Boot 程序中,支持五种 Scope作用域范围singleton容器启动时创建(未设置延迟),容器关闭时销毁prototype每次使用时创建,不会自动销毁,需要调用 DefaultListableBeanFactory.destroyBean(bean) 销毁request每次请求用到此 bean 时创建,请求结束时销毁session每个会话用到此 bean 时创建,会话结束时销毁applicationw原创 2022-05-20 17:41:57 · 222 阅读 · 0 评论 -
Spring高级篇-Aware接口及InitializingBean接口
Aware接口功能Aware 接口提供了一种【内置】 的注入手段Aware接口功能BeanNameAware注入 bean 的名字BeanFactoryAware注入 BeanFactory 容器ApplicationContextAware注入 ApplicationContext 容器EmbeddedValueResolverAware注入 ${} 解析器InitializingBean 接口提供了一种【内置】的初始化手段案例演示创建Bea原创 2022-05-20 16:31:43 · 850 阅读 · 0 评论 -
Spring高级篇-基于BeanDefinitionRegistryPostProcessor手写后置处理器
上一篇文章中通过ConfigurationClassPostProcessor、MapperScannerConfigurer扫描到了Config类中定义的Bean信息。这篇文章来手动实现这些扫描类的功能。如何扫描到定义的类加入到容器中?BeanDefinitionRegistryPostProcessor接口继承BeanFactoryPostProcessor接口,在所有bean定义信息将要被加载,bean实例还没有创建的时候执行。BeanDefinitionRegistry是bean定义信息的保存原创 2022-05-19 20:32:11 · 285 阅读 · 0 评论 -
Spring高级篇- BeanPostProcessor和BeanFactoryPostProcessor
Spring提供了BeanPostProcessor、BeanFactoryPostProcessor两大类后置处理器BeanPostProcessor:属于 bean 生命周期阶段(依赖注入, 初始化)的扩展功能。@Autowired、@Resource、@Value 等注解的解析由不同的 Bean后处理器来完成。BeanFactoryPostProcessor:主要就是补充了一些 bean 定义。@ComponentScan, @Bean, @Mapper 等注解的解析属于核心容器(即 BeanF原创 2022-05-18 22:53:54 · 1242 阅读 · 0 评论 -
Spring高级篇-Bean的生命周期
一个受 Spring 管理的 bean,生命周期主要阶段有创建:根据 bean 的构造方法或者工厂方法来创建 bean 实例对象依赖注入:根据 @Autowired,@Value 或其它一些手段,为 bean 的成员变量填充值、建立关系初始化:回调各种 Aware 接口,调用对象的各种初始化方法销毁:在容器关闭时,会销毁所有单例对象(即调用它们的销毁方法)。prototype 对象也能够销毁,不过需要容器这边主动调用#mermaid-svg-uKLrURPXIiJ5Iner {font-fam原创 2022-05-16 23:17:15 · 110 阅读 · 0 评论 -
Spring高级篇-容器和Bean
1. 容器接口BeanFactory能做哪些事ApplicationContext有哪些扩展功能事件解耦1.1 BeanFactory和ApplicationContextBeanFactory是ApplicationContext的父接口,它才是Spring的核心容器,提供getBean的能力主要的子类ApplicationContext是组合了BeanFactory的功能。它扩展了 BeanFactory 接口的功能,如:国际化通配符方式获取一组 Resource 资源整合原创 2022-05-14 23:31:39 · 338 阅读 · 0 评论