![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 95
只是记录自己学习Spring源码的过程,不作为专业的源码分析文章,所以文章里难免会有错误的地方,分析的也比较粗糙
指尖凉
生活明朗,万物可爱,人间值得,未来可期。
展开
-
SpringMVC源码解析
Spring版本是5.1.x文章目录代码示例web.xmlapplicationContext.xmlspring-mvc.xmlTestControllerTestServicetest.jsp源码解析创建Spring容器并刷新创建spring容器刷新spring容器创建SpringMVC容器并刷新创建springmvc容器刷新springmvc容器处理@RequestMapping注解,建立url和方法的关系初始化DispacherServletDispacherServlet处理请求根据当前请求.原创 2022-04-18 16:48:24 · 600 阅读 · 0 评论 -
Spring AOP 源码解析
@EnableAspectJAutoProxyaop入口是@EnableAspectJAutoProxy注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AspectJAutoProxyRegistrar.class)public @interface EnableAspectJAutoProxy { /** * 决定创建代理的方式,默认false,表示根据类是否实现接口来判断原创 2022-04-15 16:58:56 · 446 阅读 · 0 评论 -
Spring IOC 源码解析之populateBean(五)
Spring版本5.1.x文章目录populateBeanAutowiredAnnotationBeanPostProcessor#postProcessPropertiesInjectedElement#injectDefaultListableBeanFactory#resolveDependency处理@LazydoResolveDependencyfindAutowireCandidates4.1、获取到所有requiredType的候选beanName4.2、遍历resolvableDepe.原创 2022-04-13 15:45:14 · 170 阅读 · 0 评论 -
Spring IOC 源码解析之createBean(四)
Spring版本5.1.x文章目录doCreateBean1、创建bean实例2、应用后置处理器MergedBeanDefinitionPostProcessor3、判断是否要提前暴露该bean4、提前暴露该bean的ObjectFactory5、进行属性填充6、处理 bean 初始化完成后的各种回调,比如后置处理,init方法等7、如果允许提前曝光实例,则进行循环依赖检查8、注册用于销毁的bean@Overrideprotected Object createBean(String beanNa.原创 2022-04-13 15:33:07 · 272 阅读 · 0 评论 -
Spring IOC 源码解析之getBean(三)
Spring版本5.1.x文章目录1、将bean名称转换为真正的名称2、从单例map中尝试获取bean3、从上一步获取到的对象中得到真正的bean,因为有可能是FactoryBean4、针对prototype的bean5、检查一下这个 BeanDefinition 在容器中是否存在6、将bean标记为已创建(或将要创建)7、重新获取合并bean定义并检查8、初始化要依赖的Bean9、创建单例bean(重点)10、创建prototype实例11、创建除sington和prototype其他scope的b.原创 2022-04-13 15:24:05 · 215 阅读 · 0 评论 -
Spring IOC 源码解析之refresh(二)
Spring版本5.1.x文章目录prepareRefreshobtainFreshBeanFactoryprepareBeanFactorypostProcessBeanFactoryinvokeBeanFactoryPostProcessorsregisterBeanPostProcessorsinitMessageSourceinitApplicationEventMulticasteronRefreshregisterListenersfinishBeanFactoryInitializati.原创 2022-04-13 15:23:37 · 237 阅读 · 0 评论 -
Spring IOC 源码解析之创建应用上下文(一)
示例Messagepackage com.huang.sourcelearn;import org.springframework.stereotype.Component;@Componentpublic class Message { public Message() { System.out.println(123); }}Studentpackage com.huang.sourcelearn;public class Student { private原创 2022-04-13 15:22:49 · 164 阅读 · 0 评论 -
Spring之事务注解@Transactional解析(二)
这里接上一篇Spring之事务注解@Transactional解析(一)来分析下Transactionlnterceptor 的事务增强逻辑。入口在 Transactionlnterceptor 类的 invoke 方法:@Override@Nullablepublic Object invoke(MethodInvocation invocation) throws Throwable { // Work out the target class: may be {@code null}.原创 2022-04-11 18:21:30 · 1107 阅读 · 0 评论 -
Spring之事务注解@Transactional解析(一)
代码示例@Configuration@EnableTransactionManagementpublic class DataSourceConfiguration { @Bean public BasicDataSource getBasicDataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver")原创 2022-04-11 10:48:31 · 2380 阅读 · 1 评论