上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要: SpringMVC大致脉络图: RequestProcessorChain: 参照的是之前学习Spring的时候经常遇到的责任链模式的后置处理器。该类中保存了RequestProcessor的多个实现类,之所以会有多个不同的实现类是因为DispatcherServlet是项目中所有请求的唯一入口,这 阅读全文
posted @ 2021-03-04 22:24 _kerry 阅读(93) 评论(0) 推荐(0) 编辑
摘要: AdvisorAdapter关系图: MethodBeforeAdviceAdapter:该类提供getInterceptor()方法,将传递过来的advisor给调用getAdvice()方法获取到对应的advice然后强转为MethodBeforeAdvice类型。最后将其包装成MethodBe 阅读全文
posted @ 2021-03-03 22:00 _kerry 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 前言: 由于动态代理对象的创建并不需要也不会去干预bean的实例化、属性赋值、初始化。而初始化结束才意味着bean被创建完成,因此Spring会等到bean初始化之后,也就是执行完.invokeInitMethods()方法。才会将相关的横切逻辑织入到bean里。Spring的横切逻辑主要放在了初始 阅读全文
posted @ 2021-03-03 16:44 _kerry 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 横切逻辑的加载与解析: 即Aspect和Advice的加载阶段,在后续创建动态代理的时候, 根据之前开发自研框架AOP的经验,需要拿着所有的Aspect去尝试与容器的业务Bean去做匹配,只有匹配的Aspect才会去创建对应的动态代理,SpringAOP也不例外。 而进行匹配前势必要把IOC容器所有 阅读全文
posted @ 2021-03-01 12:01 _kerry 阅读(275) 评论(0) 推荐(0) 编辑
摘要: AutoProxyCreator的关系图: 观察类图,我们可以看到AbstractAutoProxyCreate实现了Aware接口,BeanFactoryAware接口使之拥有容器的能力,BeanClassLoaderAware接口使之用于Bean类加载器的能力。 实现AopInfrastruct 阅读全文
posted @ 2021-03-01 07:48 _kerry 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 前言: 为什么在启动类加上@EnbleAspectJAutoProxy就能支持AOP @EnableAspectJAutoProxy 首先我们跟入到源码中,进入到@EnbleAspectJAutoProxy类中,我们可以发现它有两个成员属性 proxyTargetClass: 表明该类采用CGLIB 阅读全文
posted @ 2021-02-28 09:52 _kerry 阅读(2118) 评论(0) 推荐(0) 编辑
摘要: BeanPostProcessor: BeanPostProcessor:Bean后置处理器 BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口。接口声明如下: public interface BeanPostProcessor { //bean初始化方法调用前被 阅读全文
posted @ 2021-02-27 11:41 _kerry 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 前言 容器是OOP的高级工具: 以低耦合低侵入的方式打通从上到下的开发通道 按部就班填充代码逻辑实现业务功能,每层逻辑都可无缝替换 OOP将业务程序分解成各个层次的对象,通过对象联动完成业务 无法很好地处理分散在各业务里的通用系统需求 系统需求 码农才去关系的需求 添加日志信息:为每个方法添加统计时 阅读全文
posted @ 2021-02-24 21:47 _kerry 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 该方法在AbstractAutowireCapableBeanFactory类中的doCreateBean方法中有使用到 populateBean方法大致流程图: (1)对Bean进行判空逻辑 (2)在设置属性前去修改Bean状态,也可以控制是否继续给Bean设置属性值(如果Bean不是Spring 阅读全文
posted @ 2021-02-23 20:50 _kerry 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: Spring中的单例循环依赖解决 我们声明了两个类(A、B),两个类中的成员变量相互引用:然后在Spring中就会产生循环依赖(A依赖B,B依赖A)。 1 @Component 2 public class GirlFriend { 3 @Autowired 4 private BoyFriend 阅读全文
posted @ 2021-02-23 11:05 _kerry 阅读(150) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页