spring
文章平均质量分 95
@猪大肠
阿里云社区专家博主、多年金融行业开发经验,专注于java核心技术、Spring框架研究,学习成功分享
展开
-
Springboot源码:自动装配流程解析
使用Spring开发时,由于项目中某些类需要提前注入到IOC容器中时,我们可以利用Springboot的自动装配,遵守其约定,将自动装配类配置到META-INF/目录下的spring.factories文件中,并指定key为org.springframework.boot.autoconfigure.EnableAutoConfiguration。这样Springboot就可以将该类注入到IOC容器中。原创 2023-05-14 14:08:19 · 398 阅读 · 0 评论 -
Spring源码学习:@Autowire和@Resource原理解析
最近在刷到很多文章讲解Spring IOC依赖注入时@Autowire和@Resource注解的区别,不同的文章总结出来的点有异同,所以还是看源码自己总结一下其两者的区别,及其用法。原创 2023-02-16 21:59:08 · 991 阅读 · 0 评论 -
Spring AOP源码:拦截器责任链处理过程
AOP动态代理过程使用责任链设计模式,将符合条件的MethodInterceptor实现类进行层层调用,但是不一定MethodInterceptor集合中的所有都会被调用,如果某个MethodInterceptor执行过程中,没有调用其下层拦截器,直接返回了,则后面的拦截器不会进行调用。原创 2023-01-30 19:54:53 · 701 阅读 · 0 评论 -
Spring源码学习:三级缓存的必要性
工作中可能会碰到循坏依赖问题,所以了解其Spring设计原理,对于解决问题更加高效。在之前的文章中讲解了Spring的代码过程。这篇文章讲解Spring中三级缓存的必要性。原创 2023-01-20 11:26:17 · 2948 阅读 · 3 评论 -
Spring AOP源码:代理的创建过程
当切面类指定了proxy-target-class="true"属性时,代表要使用Cglib(proxyTargetClass属性会为true),此时有机会是Cglib代理。条件1不满足时,看被代理类是否有preserverTargetClass属性,且值为true时,会将proxyTargetClass属性设置为true,此时有机会是Cglib代理。optimize为true时,此时有机会是Cglib代理。原创 2023-01-16 00:15:00 · 609 阅读 · 0 评论 -
Spring AOP源码:配置文件解析过程
本篇文章主要讲解AOP配置中的几个通知类的解析过程,为后续对目标类进行代理做准备;在前面的Spring IOC篇我们讲解了自定义配置的解析,AOP配置的解析过程也是其自定义注解的过程原创 2022-12-27 21:22:42 · 907 阅读 · 5 评论 -
Spring AOP:基本概述
AOP可以对业务逻辑的各个部分进行隔离,从而是的业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。原创 2022-12-27 17:07:00 · 167 阅读 · 0 评论 -
Spring IoC源码:finishRefresh 完成刷新详解
Spring IOC中refresh()所有方法都讲解完了,这里面的内容非车多,花了不少时间在看,但是感觉还是比较粗糙,文章中有很多点理解得不是很到位,如果大家有更好的见解,欢迎指点评论。学习IOC过程是非常枯燥的,但是耐心去看真的能发现这个框架设计真的很厉害,拓展性做得很好,有很多地方值得我们在工作中进行参考开发。后续会发布Spring 系列的其它文章,如AOP,只有不断的学习,才能加深对Spring框架的理解。原创 2022-12-05 22:01:27 · 1706 阅读 · 21 评论 -
Spring IoC源码:createBean(下)
上篇文章讲解了实例化后,初始化属性注入过程中属性值的解析过程及其注入过程,本篇继续讲解doCreateBean流程中属性注入后的其它流程,即对bean实例进行初始化。原创 2022-12-05 20:59:25 · 666 阅读 · 0 评论 -
Spring IoC源码:createBean(中)
上篇文章讲解了Bean的实例化过程,包含构造器的选择、参数的创建等,本篇继续创建createBean的剩余流程,包括Bean实例化后的初始化属性注入工作,以及BeanPostProcessor的执行过程。原创 2022-12-03 22:31:59 · 430 阅读 · 0 评论 -
Spring IoC源码:createBean( 上)
本篇文章讲解Bean实例化过程、构造器选择、参数转换........原创 2022-11-29 21:08:15 · 519 阅读 · 0 评论 -
Spring IoC源码:getBean 详解
先从缓存中获取实例对象,如果有实例则进行工厂对象解析流程,判断beanName是否带&符号,决定是返回工厂对象本身还是返回真正的实例,如果是返回真正的实例,则调用工厂对象的getObject返回,如果返回值为null,并且在isSingletonCurrentlyInCreation中存在,代表是一个正在创建的bean,不完整的工厂对象,则抛出异常。原创 2022-11-24 23:13:45 · 977 阅读 · 2 评论 -
Spring IOC源码:finishBeanFactoryInitialization详解
本篇文章讲解了bean创建前的准备工作,及其FactoryBean的概念,并且讲解了三级缓存的作用。一级缓存 singletonObjects:存放完整的Bean对象二级缓存 earlySingletonObjects:存放半成品Bean对象三级缓存singletonFactories:存放封装后的ObjectFactory,通过getObject返回实例对象,该对象可能是代理后的对象也可能是普通对象。原创 2022-11-23 22:33:39 · 410 阅读 · 0 评论 -
Spring IOC源码:实例化前的准备工作
上篇文章我们讲解了IOC比较重要的后置处理器注册方法,本篇文章讲解实例化前的准备工作,包括国际化、多播器创建、监听器注册等节点。原创 2022-11-21 21:02:03 · 323 阅读 · 0 评论 -
Spring IOC源码:registerBeanPostProcessors 详解
BeanPostProcessor和BeanFactoryPostProcessor都属于IOC后置处理器,只是两者操作的对象不一样,并且调用时间点也不一样;原创 2022-11-19 12:06:52 · 501 阅读 · 0 评论 -
Spring IOC源码:invokeBeanFactoryPostProcessors 后置处理器详解
本篇文章讲解了refresh方法中的prepareBeanFactory、postProcessBeanFactory、invokeBeanFactoryPostProcessors这三个方法。prepareBeanFactory其实就是BeanFactory工厂做一些准备工作,忽略某些值不被其它类所注入,以及添加一些后置处理器等。原创 2022-11-17 22:12:58 · 244 阅读 · 0 评论 -
Spring IOC源码:<context:component-scan>源码详解
这节学习IOC中比较重要的注解解析< context:component-scan>标签,讲解如何对包进行扫描、解析处理等工作。原创 2022-11-15 22:09:49 · 583 阅读 · 0 评论 -
Spring IOC源码:obtainFreshBeanFactory 详解(下)
本篇文章介绍了自定义命名空间的解析过程,并且编写的自定义命名空间案例加深理解。原创 2022-11-12 12:16:48 · 529 阅读 · 0 评论 -
Spring IOC源码:obtainFreshBeanFactory 详解(中)
这篇我们重点介绍obtainFreshBeanFactory中的默认命名空间对配置文件的处理过程。原创 2022-11-08 23:12:57 · 243 阅读 · 0 评论 -
Spring IOC源码:obtainFreshBeanFactory 详解(上)
这节文章介绍refresh方法中的prepareRefresh()跟obtainFreshBeanFactory()方法。prepareRefresh比较简单主要是设置一下上下文的状态、开始时间等。obtainFreshBeanFactory是一个比较核心的方法,主要解析配置文件,封装成BeanDefinition,并放入上下文缓存中。几个主要的缓存:原创 2022-11-06 23:02:53 · 303 阅读 · 0 评论 -
Spring IOC源码:ApplicationContext刷新前准备工作
在进入spring正式核心逻辑处理前,Spring IOC需要提前进行些初始化工作,为后续的操作准备好一些环境。下面主要讲解这部分的内容,也是refresh()方法前的代码逻辑,即下面的super(parent),setConfigLocations(configLocations);本人以xml配置的方式,入口为ClassPathXmlApplicationContext;原创 2022-11-03 22:54:08 · 400 阅读 · 0 评论 -
Spring IOC源码:核心流程介绍
Srping IOC框架拓展性设计非常好,像AOP、事务、Spring MVC 都是基于IOC基础之上,所以啃好IOC,学习后面的知识会比较容易接收。原创 2022-10-31 22:03:51 · 696 阅读 · 0 评论 -
简单易懂的Spring IOC 思路介绍
如果让大家设计一个IOC容器,你会如何设计?通过以上步骤可以设计出一个简陋版的IOC,一个Bean在Spring IOC中创建思路也是类似这样,但是要复杂得多。性设计的非常好,它提供了很多拓展接口,比如让使用者可以对配置文件解析进行操作的BeanFactoryPostProcessor,也有初始化前后执行的BeanPostProcessor。通过上面的介绍,我们对IOC应该不会一无所知的,它的流程:1、加载配置文件2、解析配置文件3、封装配置文件。原创 2022-10-29 21:39:07 · 395 阅读 · 2 评论 -
Spring源码下载与编译,Debug学习才有效率
学习spring的时候,肯定要自己学会看源码,才能更好的学习框架的设计思想,要有效率的学习,借助Debug效率才更高。在学习的前提就是要下载一下源码,编译过程中真的遇到很多坑啊,折腾很多时间,版本问题,jar下载问题等,下面给大家分享一下我的步骤;............原创 2022-07-04 23:28:09 · 845 阅读 · 0 评论