CLOUDERHEM
Spring aop 源码分析 (3)
Back to Home
Spring aop 源码分析 (3)
Created
2023-03-17
|
Updated
2025-07-27
|
Post Views:
Spring aop 源码分析 (3)
前置知识
在阅读此文章前, 建议先阅读一下
Spring aop 源码分析 (2)
正在努力的赶来~~
Author:
CLOUDERHEM
Link:
https://clouderhem.pro/2023/03/17/spring-aop3/
Copyright Notice:
All articles on this blog are licensed under
CC BY-NC-SA 4.0
unless otherwise stated.
spring-aop
Previous
Java 线程池源码分析
Java 线程池源码线程池的执行流程 主线程调用execute、或者submit等方法提交任务给线程池执行 如果线程池中正在运行的工作线程数量小于corePoolSize,线程池会创建线程去运行这个任务 如果线程池中正在运行的工作线程数量大于或等于 corePoolSize(核心线程数量),那么将这个任务放入队列,等待线程从队列中获取任务 如果这时队列满了且正在运行的工作线程数量还小于 maximumPoolSize,那么会创建非核心线程立刻运行这个任务,这部分非核心工作线程空闲超过一定的时间(keepAliveTime)时,就会被销毁回收(线程退出了) 如果最终提交的任务超过了maximumPoolSize(最大线程数量),线程池就会执行拒绝策略 线程池创建参数线程池的构造函数 1234567891011121314151617181920212223public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...
Next
Spring transaction 分析
Spring 事务分析前置知识在阅读此文章前, 了解一下基础知识有助于阅读 事务的概念 事务的隔离级别 JDBC基础 Spring bean 的生命周期 创建代理对象有了解过spring bean生命周期知道, 代理对象的创建一般在实在初始化后, 在BeanPostProcessor类中的applyBeanPostProcessorsAfterInitialization方法实现的 在AbstractAutoProxyCreator中的applyBeanPostProcessorsAfterInitialization中, 会调用wrapIfNecessary, 在wrapIfNecessary方法中, spring通过getAdvicesAndAdvisorsForBean方法获取了作用于当前bean的specificInterceptors(例如: BeanFactoryTransactionAttributeSourceAdvisor) ,然后将该specificInterceptors放入到proxyFactory中, 通过proxyFactory去创建代理对...
Related Articles
2022-07-26
Spring aop 源码分析 (1)
spring aop 源码分析前置知识 spring ioc 容器 spring bean 的生命周期 spring 中常见类的作用 spring aop 的基本使用 cglib 动态代理知识 jdk 动态代理知识 源码分析一切皆是 BeanPostProcessor了解过spring框架的同学都知道, spring中很多功能都是通过实现BeanPostProcessor接口, 在创建bean之后的初始化方法中, 有applyBeanPostProcessorsAfterInitialization方法 123456789101112protected Object initializeBean(String beanName, Object bean, @Nullable RootBeanDefinition mbd) { // 代码省略 if (mbd == null || !mbd.isSynthetic()) { // after Initialization // bean初始化之后, 调用beanPostP...
2022-08-08
Spring aop 源码分析 (2)
Spring aop 源码分析 (2)前置知识在阅读此文章前, 建议先阅读一下 Spring aop 源码分析 (1) 创建代理对象在上一篇文章中说道, AopProxyFactory通过一些条件判断创建的AopProxy是基于cglib的CglibAopProxy还是基于jdk的JdkDynamicAopProxy. 接下来我们就看看AopProxy到底是如何产生代理对象的, 并且代理过程是如何执行的 CglibAopProxy我们首先看一下getProxy方法 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263@Overridepublic Object getProxy(@Nullable ClassLoader classLoader) { ... try { Class<?> rootClass = this.advised....
CLOUDERHEM
Articles
11
Tags
8
Categories
0
Announcement
Talk is cheap. show me your code
Contents
1.
Spring aop 源码分析 (3)
1.1.
前置知识
Recent Posts
Java 线程池源码分析
2023-03-19
Spring aop 源码分析 (3)
2023-03-17
Spring transaction 分析
2022-08-08
Spring aop 源码分析 (2)
2022-08-08
Spring mvc 分析
2022-08-05