E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
spring源码
spring源码
解析-------AbstractApplicationContext类的prepareBeanFactory方法
源码解析AbstractApplicationContext类的protectedvoidprepareBeanFactory(ConfigurableListableBeanFactorybeanFactory)方法/***Configurethefactory'sstandardcontextcharacteristics,*suchasthecontext'sClassLoaderandpo
xfgp02
·
2023-11-28 21:38
spring源码解析
spring
Spring源码
解析-2.IOC容器源码解析
目录前言一、IOC是什么?二、代码实践三、构建流程分析BeanFactory简介启动过程分析四、Component注解实现原理(手动实现)五、@Autowired源码浅析参考前言Spring三大核心思想:控制反转(IOC),依赖注入(DI)和面向切面编程(AOP)。Spring最核心,最基础的概念是什么?将spring类比java,java最核心,最基础的概念就是object了。java中,所有的
不进大厂不改名二号
·
2023-11-28 21:37
spring
spring
java
spring源码
解析之ioc-prepareBeanFactory
上一篇,我们分析了beanDefinition的定义,接着,我们继续跟着源码,来看看springioc在启动阶段都做了什么事还是来贴出核心代码publicvoidrefresh()throwsBeansException,IllegalStateException{synchronized(this.startupShutdownMonitor){this.prepareRefresh();Con
mist蒙
·
2023-11-28 21:07
Spring源码
深度解析-IOC的初始化过程之refresh()--prepareBeanFactory
1.Spring的prepareBeanFactory源码如下protectedvoidprepareBeanFactory(ConfigurableListableBeanFactorybeanFactory){//Telltheinternalbeanfactorytousethecontext'sclassloaderetc./***设置上下文类加载器*/beanFactory.setBea
一只穿雲箭
·
2023-11-28 21:06
Spring
源码分析
spring
java
Spring源码
深度解析-IOC的初始化过程之refresh()--prepareBeanFactory--ResourceEditorRegistrar
ResourceEditorRegistrar进行分析之resourceLoaderbeanFactory.addPropertyEditorRegistrar(newResourceEditorRegistrar(this,getEnvironment()));//接着进入ResourceEditorRegistrar其中this是resourceLoadergetEnvironment()返回
一只穿雲箭
·
2023-11-28 21:06
Spring
源码分析
spring
Spring源码
深度解析-IOC的初始化过程之refresh()--prepareBeanFactory--BeanPostProcessors
本篇文章我们分析一下
Spring源码
中refresh()--prepareBeanFactory以下两个方法。
一只穿雲箭
·
2023-11-28 21:06
Spring
源码分析
spring
spring源码
分析 - AnnotationConfigApplicationContext启动之refresh
前言我们在使用springframework时一般都喜欢按照以下方式写启动AnnotationConfigApplicationContextapplicationContext=newAnnotationConfigApplicationContext(AppConfig.class);而我们的AnnotationConfigApplicationContext的内容如下publicAnnota
lin000_0
·
2023-11-28 21:36
JAVA开发日常问题
spring
java
servlet
Spring源码
--prepareBeanFactory方法
protectedvoidprepareBeanFactory(ConfigurableListableBeanFactorybeanFactory){ //设置类加载器:存在则直接设置/不存在则新建一个默认类加载器 beanFactory.setBeanClassLoader(getClassLoader()); //设置EL表达式解析器(Bean初始化完成后填充属性时会用
小雨的光
·
2023-11-28 21:36
spring源码
Spring源码
解析(16)之refresh(4)-prepareBeanFactory源码分析
一、前言在这一篇博客中我们主要是介绍prepareBeanFactory方法,bean工厂的初始化准备工作,设置bean工厂的一些属性值,需要忽略哪一些接口,需要注册哪一些bean,需要设置哪一些bean的后置处理器等。接下来我们看具体的源码分析,并且这里我们还看看Spring属性编辑器,以及我们如果去拓展一个属性编辑器。protectedvoidprepareBeanFactory(Config
技术路上的苦行僧
·
2023-11-28 21:35
Spring源码分析系列
Spring源码分析
Spring属性编辑器
自定义属性编辑器
prepare源码分析
Spring
001.
spring源码
分析-bean创建流程
首先创建ClassPathXmlApplicationContextpublicClassPathXmlApplicationContext(String[]configLocations,booleanrefresh,@NullableApplicationContextparent)throwsBeansException{super(parent);setConfigLocations(co
colossus_bigdata
·
2023-11-28 21:05
spring源码分析
spring
java
13.
Spring源码
解析-prepareBeanFactory
点进去此处是Spel表达式设置BeanExpressionResolver此接口只有一个实现:StandardBeanExpressionResolver。接口只含有一个方法:Objectevaluate(Stringvalue,BeanExpressionContextevalContext)prepareBeanFactory将一个此对象放入BeanFactory:beanFactory.se
码农大乐乐丶
·
2023-11-28 21:33
springIOC
spring
java
后端
15.
spring源码
解析-invokeBeanFactoryPostProcessors
BeanFactoryPostProcessor接口允许我们在bean正是初始化之前改变其值。此接口只有一个方法:voidpostProcessBeanFactory(ConfigurableListableBeanFactorybeanFactory);有两种方式可以向Spring添加此对象:通过代码的方式:context.addBeanFactoryPostProcessor通过xml配置的方
码农大乐乐丶
·
2023-11-28 20:11
springIOC
spring
java
数据库
14.
spring源码
解析-postProcessBeanFactory
此方法允许子类在所有的bean尚未初始化之前注册BeanPostProcessor。空实现且没有子类覆盖。
码农大乐乐丶
·
2023-11-28 20:41
springIOC
spring
java
后端
8.
Spring源码
解析-parseBeanDefinitionElement bean解析
首先获取到bean的class属性和parent属性,配置了parent之后,当前bean会继承父bean的属性。之后根据class和parent创建BeanDefinition对象。相关代码区域如下:StringclassName=null;if(ele.hasAttribute(CLASS_ATTRIBUTE)){className=ele.getAttribute(CLASS_ATTRIBU
码农大乐乐丶
·
2023-11-28 20:10
springIOC
spring
java
后端
1.
Spring源码
解析-ClassPathXmlApplicationContext
此类是读取spring的xml配置文件并解析。也是源码入口之一。我们调试即将开始。传递给父类设置值经调试我们得到是给AbstractApplicationContext设置默认的应用上下文父级的值,很明显是空给父类AbstractRefreshableConfigApplicationContext设置属性刷新容器时序图如下:
码农大乐乐丶
·
2023-11-28 20:05
springIOC
java
spring
boot
spring
4.
Spring源码
解析-loadBeanDefinitions(XmlBeanDefinitionReader)
第一个点进去发现是空肯定走的第二个逻辑了这里在这里已经给属性设置了值,所以肯定不是空能拿到。1.ClassPathXmlApplicationContext总结:该loadBeanDefinitions是XmlBeanDefinitionReader设置xml文件在哪。
码农大乐乐丶
·
2023-11-28 09:41
springIOC
java
spring
Spring中BeanFactory和FactoryBean区别
目录一、BeanFactory二、FactoryBean三、小结Spring学习专栏1.
Spring源码
分析(一)基本框架介绍2.
Spring源码
分析(二)两种方案搭建基础框架3.Spring中@Conditional
给自己一个 smile
·
2023-11-28 00:41
Spring
Spring
BeanFactory
FactoryBean
Spring源码
篇之SpEL表达式
简介Spring(SpringExpressionLanguage)表达式简称SpEL表达式,该功能在Spring中实现还是比较复杂,在Spring中单独有一个模块spring-expression来实现,所以本文主要看一小部分的源码,大概知道怎么使用就行了源码分析在AbstractBeanFactory中就有一个属性beanExpressionResolver会设置默认的表达式privateBe
shura1014
·
2023-11-27 10:47
spring
framework
spring
java
后端
Spring源码
篇之SpEL表达式的上下文EvaluationContext
简介上节已经介绍了spring表达式,也举了很多案例,本文是对spring表达式上下文EvaluationContext的一个补充EvaluationContext在spring表达式中非常重要,里面可以定义数据应该从哪里来比如@Value(“#{beanName}”),希望应该可以从spring中获取单例Bean,都可以由它实现接口定义publicinterfaceEvaluationConte
shura1014
·
2023-11-27 10:47
spring
framework
spring
java
Spring源码
篇之占位符填充${}
简介在spring中占位符用${}表示,他可以很好的实现将变动的数据与代码分离,这部分变化的数据就可以使用配置文件等诸多手段动态配置spring中的占位符应用的非常广泛,比如@Value注解@RequestMappingFeign等都支持${}spring为该功能定义了一个接口StringValueResolver,可以自定义实现类可以通过beanFactory.addEmbeddedValueR
shura1014
·
2023-11-27 10:17
spring
framework
spring
java
Java技术体系之框架原理篇(一)——
Spring源码
解析
目录1、容器的整体功能1.1从一个测试用例说起1.2刷新容器1.2.1环境准备1.2.2加载BeanFactory(详见章节2、Bean的解析和注册)1.2.3功能扩展1.2.4调用BeanFactoryPostProcessor(待研究)1.2.5注册BeanPostProcessor(注意这里不是调用,真正的调用在IoC流程里)1.2.6国际化处理(待研究)1.2.7初始化消息广播器1.2.8
东湖樵夫
·
2023-11-27 10:15
框架原理篇
java
spring
开发语言
【
Spring源码
篇】IoC之ApplicationContext中refresh过程
前言上篇讲到【
Spring源码
篇】事件监听机制(@EventListener实现方式)https://blog.csdn.net/Number_oneEngineer/article/details/123889743
_Romeo
·
2023-11-27 10:11
Spring源码
spring源码
applicaion
IoC
Spring源码
篇之SpEL表达式之自定义解析模版
简介其实前面文章我们已经介绍过了如何定义spring表达式的解析模版,但是那是直接使用表达式api的形式,对于使用spring的同学来说,更优雅的方式就是可以自定义一个扩展去修改本文就是介绍如何通过Spring的扩展点修改表达式解析模版自定义解析模版首先AbstractBeanFactory就有有一个解析器BeanExpressionResolver,这个前面文件介绍过,默认是一个Standard
shura1014
·
2023-11-27 10:10
spring
framework
spring
java
后端
探究Kafka原理-5.Kafka设计原理和生产者原理解析
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:
Spring源码
、JUC源码、Kafka原理如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成2023
爱吃芝士的土豆倪
·
2023-11-27 00:33
kafka
kafka
分布式
java
探究Kafka原理-4.API使用
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:
Spring源码
、JUC源码、Kafka原理如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成2023
爱吃芝士的土豆倪
·
2023-11-26 07:38
kafka
kafka
分布式
java
【
Spring源码
】Spring Event事件
目录1、前言2、什么是SpringEvent?3、基本使用3.1、定义事件3.2、发布事件3.3、监听事件3.3.1、继承ApplicationListener3.3.2、使用@EventListener注解4、SpringEvent是同步还是异步?4.1、源码实现4.2、如何实现异步4.2.1、使用@Async注解4.2.2、手动实现异步线程池4.2.3、自定义ApplicationEventM
有一只柴犬
·
2023-11-26 07:47
Spring
spring
java
比真香定律更加恐怖!那些统治软件开发中的著名定律
关注公众号:ITeye领最新
spring源码
教程,更多优质技术文章每天推送在这里,我把这些定律整理出来,分享给大家。墨菲定律(Murphy'sL
ITeye
·
2023-11-26 03:50
Spring源码
深度解析
目录一.IOC源码深度剖析1.一般第一步都是加载xml文件,创建一个ApplicationContext容器2.进入newClassPathXmlApplicationContext("classpath:applicationContext.xml")这个构造方法;3.进入核心方法refresh的源码4.核心方法源码解析5.IOC流程图二.Spring的循环依赖1.Spring解决循环依赖2.S
Mr Tang
·
2023-11-25 20:08
java
spring
源码
spring
java
后端
Spring源码
分析
Spring源码
分析Spring使用流程(此处以xml配置为例)xml配置beanApplicationac=newClassPathXmlAppliation(“applicationContext.xml
Armin_1024
·
2023-11-25 20:06
Spring
java
spring
Spring源码
粗粒度解析
1.SpringIOC流程首先IOC是用于管理Bean的一个容器,把所有的Bean创建好,使用的时候再调用1)IOC要管理哪些Bean呢?全部?非也:在原生的spring中,我们有一个xml文件,文件中有这么一段代码,如下在这个配置文件中的Bean标签中配置的Bean才会被IOC容器管理2)怎么读取XML文件?什么时候读取?newClassPathXmlApplication("applicati
好久不见灬
·
2023-11-25 17:01
模拟
Spring源码
思想,读取Spring Config配置文件,创建IOC容器,解析spring.xml,创建对象,放入IOC容器,注入依赖
1、Spring.xml2、ApplicationContext.javapackagecom.atguigu.ioc;importjava.util.HashMap;importjava.util.Map;publicinterfaceApplicationContext{MapbeanMap=newHashMapgetIocContainer();ObjectgetBean(Stringbea
丁总学Java
·
2023-11-25 05:50
#
Spring
Framework
spring
xml
java
dom4j
spring
config
Spring源码
剖析——依赖注入实现原理
文章目录引言依赖注入介绍源码剖析getBean触发的依赖注入getBean方法doGetBean方法创建完整Bean的流程creaBean方法doCreateBean方法createBeanInstance方法instantiateBean依赖关系的处理populateBean方法applyPropertyValues方法resolveValueIfNecessary方法setPropertyVa
钢铁-程序猿
·
2023-11-25 02:02
Spring技术内幕
spring源码
分析03-spring依赖注入源码解析
依赖注入流程图:1.Spring中有几种依赖注入的方式?1.1手动注入在XML中定义Bean时,就是手动注入,因为是程序员手动给某个属性指定了值。下面这种底层是通过set方法进行注入。下面这种底层是通过构造方法进行注入。2.自动注入自动注入又分为两种:XML的autowire自动注入@Autowired注解的自动注入2.1XML的autowire自动注入在XML中,我们可以在定义一个Bean时去指
华子哥、
·
2023-11-25 02:29
spring
spring
java
mybatis
探究Kafka原理-3.生产者消费者API原理解析
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:
Spring源码
、JUC源码、Kafka原理如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成2023
爱吃芝士的土豆倪
·
2023-11-24 22:41
kafka
kafka
分布式
java
探究Kafka原理-2.Kafka基本命令实操
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:
Spring源码
、JUC源码、Kafka原理如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成2023
爱吃芝士的土豆倪
·
2023-11-24 22:07
kafka
kafka
分布式
java
Spring源码
-循环依赖
循环依赖问题先分析下bean生命周期,简化版:1.扫描,获取所有的BeanDefinition,存入BeanDefinitionMap2.遍历BeanDefinition,准备创建bean3.推断构造方法,通过反射,实例化bean对象(原始对象)4.属性赋值5.初始化前,初始化6.初始化后,可能AOP7.把经过完整生命周期对象放入单例池SingletonObjects触发循环依赖-场景1:ABea
kk_0910
·
2023-11-24 18:18
spring
java
Spring源码
篇之推断构造方法
简介很多时候我们的构造器都不止一个,那么spring怎么选择的呢,签名介绍了推断构造方法的扩展点,可以使用@Autowired注解去选择使用哪个构造器,但是即使这样也有可能有多个Autowired且required为false的构造器,那么还是得选择前面我们介绍过了@Bean的实例化,其实推断构造器的逻辑与其相差不多。源码分析源码在org.springframework.beans.factory
shura1014
·
2023-11-24 07:58
spring
framework
spring
java
后端
Gradle 编译Spring 源码
1.
spring源码
下载gitclone--branchv5.1.3.RELEASEhttps://gitee.com/Z201/spring-framework.git2.gradle下载要根据spring
一个想改变世界的码农
·
2023-11-24 04:20
面试官:来!聊聊线程池的实现原理以及使用时的问题
扫描下方二维码或者微信搜索公众号菜鸟飞呀飞,即可关注微信公众号,阅读更多
Spring源码
分析和Java并发编程文章。
天堂2013
·
2023-11-24 00:38
多线程
Java
线程池
并发
Spring源码
-6.动态代理原理分析
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:
Spring源码
、JUC源码如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成2023计划中:源码溯源
爱吃芝士的土豆倪
·
2023-11-23 09:25
Spring
spring
java
后端
Spring源码
-5.aop代理
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:
Spring源码
、JUC源码如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成2023计划中:源码溯源
爱吃芝士的土豆倪
·
2023-11-23 09:55
Spring
spring
java
后端
程序员的护城河-并发编程
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:
Spring源码
、JUC源码如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成2023计划中:源码溯源
爱吃芝士的土豆倪
·
2023-11-23 09:55
JUC
java
juc
开发语言
探究Kafka原理-1.初识Kafka
作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家系列专栏:
Spring源码
、JUC源码、Kafka原理如果感觉博主的文章还不错的话,请三连支持一下博主哦博主正在努力完成2023
爱吃芝士的土豆倪
·
2023-11-23 09:14
kafka
kafka
分布式
消息队列
模拟
Spring源码
思想,手写源码,理解注解
1、BeanDefinitionpackagecom.csdn.myspring;importlombok.AllArgsConstructor;importlombok.Data;@Data@AllArgsConstructorpublicclassBeanDefinition{privateStringbeanName;privateClassbeanClass;}2、扫描包的工具类MyToo
丁总学Java
·
2023-11-23 02:39
#
Spring
Framework
spring
java
后端
设计模式-16-
Spring源码
中的设计模式
1-Spring之观察者模式Java、GoogleGuava都提供了观察者模式的实现框架。Java提供的框架比较简单,只包含java.util.Observable和java.util.Observer两个类。GoogleGuava提供的框架功能比较完善和强大:通过EventBus事件总线来实现观察者模式。实际上,Spring也提供了观察者模式的实现框架。Spring中实现的观察者模式包含三部分:
ycmy2017
·
2023-11-23 02:25
设计模式
设计模式
spring
java
Spring源码
篇之@Lookup详解
简介Lookup注解可能平时开发中大家接触的少,但是又确实挺有用的,比如我们一个单例Bean注入了一个原型Bean,原型Bean的效果其实是会失效的,因为单例Bean一开始就实例化好了,后面也不会再变化,但我们可能需要的就是原型Bean呀,那么怎么解决呢,如果注入的是一个动态的就好了,于是我们马上就会想到代理对象,spring中@Lookup就可以帮助我们实现该效果,原理就是生成了一个代理对象Lo
shura1014
·
2023-11-21 20:12
spring
framework
spring
java
后端
面试题:你简历中写到熟悉
Spring源码
,那你给我说说它用到了那些设计模式?
#模板方法(TemplateMethod)spring的jdbc模板,对
Spring源码
的精妙真是佩服得五体投地,极为经典。spring中真是集设计模式之大成,而且用得是炉火纯青。
java成功之路
·
2023-11-21 20:42
Spring源码
篇之@Bean的实例化
简介前面介绍了@Bean标记的方法如何注册为BeanDefinition,有了BeanDefinition后,就能根据其中的信息实例化一个对象在@Bean的BeanDefinition有几个比较重要的属性,一个是factoryMethodName,一个是factoryBeanNamefactoryMethodName可以表示该Bean是一个@Bean,而factoryBeanName可以知道该Be
shura1014
·
2023-11-21 15:04
spring
framework
spring
java
Spring源码
—初识IOC
System.out.println(“嗨,大家好,我是代码不会敲的小符,双非大四,Java实习中…”);System.out.println(“如果文章中有错误的地方,恳请大家指正!共同进步,共同成长✊”);System.out.println(“如果文章对您有所帮助,希望您可以三连支持一下博主噢”);System.out.println("正在完成计划中:接下来的三个月里,对梦想的追逐");初
代码不会敲
·
2023-11-21 08:47
Spring源码
java
spring
spring源码
环境构建
本文主要记录
Spring源码
的阅读环境的搭建和验证1.前置条件(我的环境)IntellijIDEA2020.1.3jdk1.8mavne3.6.1gradle5.6git操作系统Win102.安装Gradle
皮多堡
·
2023-11-21 00:22
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他