Spring源码
文章平均质量分 92
介绍Spring相关的源码和基础知识
目送飞鸟
这个作者很懒,什么都没留下…
展开
-
Spring源码1——容器创建流程
二者用于在容器加载Bean后,实例化之前对Bean的进行修改或(修改元数据或添加逻辑),但是前者是对整个BeanFactory,仅执行一次;获取BeanFactory,查看有无MesageSource组件,有则赋值,无则new一个默认的DelegatingMessageSource并注册到容器。居然是空的,这里实际是留给子类做一些事情的,如自己可以写一个子类,重写此方法,做一些个性化属性处理。空的,可以写IOC容器的子类重写该方法,对工厂做一个后置处理。负责国际化,消息绑定,消息解析。原创 2023-07-24 00:30:08 · 307 阅读 · 1 评论 -
Spring源码学习2——AOP
需求:运行业务方法前后记录日志1.导入依赖。2.创建业务类。3.定义切面类,@Aspect告诉容器哪个是切面类。@PiontCut抽取公共切入点,也可以不抽,每个单独写完整切入点写通知方法。【@Before,@After,@AfterReturning,@AfterThrowing,@Around】,填入切入点4.配置类上@EnableAspectJautoProxy开启AOP模式【也可以通过xml开启】。并将业务类和切面类交给容器管理。【也可以交给注解做@Component】原创 2023-07-24 23:11:04 · 107 阅读 · 0 评论 -
Spring源码学习3——事务
之前aop流程,bean初始化后置会创建代理对象,此过程需要找出方法增强器,创建代理【wrapIfNecessary】寻找候选增强器,再从候选增强器种寻找到匹配项。从候选增强器种寻找到匹配项时如果是引介增强器【IntroductionAdvisor】且满足过滤器,直接匹配如果是切点增强器【PointcutAdvisor】,查看其切点是否匹配【canApplly】,而Bean工厂事务属性源增强器【BeanFactoryTransationAttributeSourceAdviosr】在此分支。原创 2023-07-31 14:20:53 · 39 阅读 · 0 评论