
spring源码
文章平均质量分 57
spring源码,全部源码文章GitHub仓库地址:https://github.com/WenyaoL/source-blog
鸭梨的药丸哥
文耀
展开
-
ResourceLoader接口解读
ResourceLoader接口比较简单,就是要求实现该接口的类能获取Resource。spring提供了一个默认的ResourceLoader实现类,叫做:DefaultResourceLoader原创 2022-06-28 23:06:44 · 298 阅读 · 0 评论 -
DefaultResourceLoader解读
DefaultResourceLoader是spring提供的一个默认的资源加载器,DefaultResourceLoader实现了ResourceLoader接口,提供了基本的资源加载能力。DefaultResourceLoader包含了一个protocolResolvers的set集,可以通过添加ProtocolResolver来提供不同协议资源的读取能力,默认情况下protocolResolvers是空的,我们可以通过添加ProtocolResolver扩展DefaultResourceLoader的原创 2022-06-28 20:57:30 · 1059 阅读 · 0 评论 -
EncodedResource类解读
EncodedResource是spring中Resource编码相关的封装类,EncodedResource里面封装了一个Resource成员属性,其实主要功能就是通过指定的编码获取资源的输入流。EncodedResource主要看getReader()方法,这个方法通过指定的编码方式返回InputStreamReader。...原创 2022-06-28 20:56:37 · 707 阅读 · 0 评论 -
WritableResource接口解读
WritableResource继承于Resource,提供了资源的写能力。例子FileSystemResource实现了WritableResource所有具备了写的能力,可以尝试一下使用该接口获取输出流。原创 2022-06-28 20:56:14 · 171 阅读 · 0 评论 -
WritableResource接口解读
WritableResource继承于Resource,提供了资源的写能力。例子FileSystemResource实现了WritableResource所有具备了写的能力,可以尝试一下使用该接口获取输出流。原创 2022-06-26 17:34:49 · 233 阅读 · 0 评论 -
FileSystemResource类解读
spring的一个用于读取文件系统下的资源的一个实现类,使用起来非常简单。获取文件的输入流判断资源是否可写(如果是目录那就肯定不可写啦)FileSystemResource使用例子读取一个文件,写(覆盖)些数据进去...原创 2022-06-26 17:29:10 · 9313 阅读 · 0 评论 -
Resource接口解读
Resource是spring的资源策略接口,Resource定义了一套资源框架。spring提供了更加丰富的资源的定义。对不同来源的资源文件都有相应的 Resource 实现∶文件(FileSystemResource)、Classpath 资源(ClassPathResource)、URL 资源(UrlResource)、InputStream资源(InputStreamResource)、Byte 数组(ByteArrayResource)等Resource是spring的资源策略接口,Resourc原创 2022-06-26 17:24:52 · 871 阅读 · 0 评论 -
spring中的messageSource(国际化)
messageSource是spring中的转换消息接口,提供了国际化信息的能力。用于解析消息,并支持消息的参数化和国际化。 Spring 包含两个内置的实现:和。资源文件测试结果spring的AbstractApplicationContext中MessageSource初始化初始化在中有一个方法,在刷新方法里面调用一个。方法就是初始化上下文中的MessageSource资源国际化组件。使用容器中的messageSource提供了接口方法来使用容器中的messagesource..原创 2022-06-26 17:09:24 · 6771 阅读 · 0 评论 -
spring中的ApplicationEventMulticaster
ApplicationEventMulticaster是spring中事件广播器接口,负责事件的广播发布。中使用初始化事件广播器。上下文初始化ApplicationEventMulticaster中使用初始化事件广播器。自定义简易的ApplicationEventMulticasterApplicationEventMulticaster自定义广播器ApplicationListener自定义监听器ApplicationEvent自定义事件测试测试结果在控制台打印如下结果是sprin原创 2022-06-26 16:16:29 · 1807 阅读 · 0 评论 -
GenericBeanDefinition及其子类
GenericBeanDefinition是继承于抽象类AbstractBeanDefinition,相比AbstractBeanDefinition多了一个成员属性parentName。GenericBeanDefinition通用的bean实现,自2.5以后新加入的bean文件配置属性定义类。GenericBeanDefinition有三个派生子类:这三个派生子类的作用如下:ScannedGenericBeanDefinition:存储@Component、@Service、@Controller等注解原创 2022-06-26 15:53:41 · 4153 阅读 · 1 评论 -
DefaultBeanDefinitionDocumentReader解读
是的为数不多的实现类,是专门提取DOM树中的bean信息,并转化为BeanDefinition的一个实现类实现接口方法,其实具体实现在doRegisterBeanDefinitions这个方法主要看后面那几句,改方法传入一个根节点,并对改根节点的解析做以下步骤:parseBeanDefinitions这个方法是拿出根节点的子节点,并对子节点列表遍历,然后正在解析节点元素的是parseDefaultElement,如果不了解Java对DOM的操作的化,建议先学Java dom,也就是org.w3c.d原创 2022-06-26 15:45:52 · 240 阅读 · 0 评论 -
BeanDefinitionDocumentReader
BeanDefinitionDocumentReader是一个spring中定义解析DOM树中的bean信息转换为BeanDefinition的接口BeanDefinitionDocumentReader会解析DOM树中的bean信息转换为BeanDefinition并注册到XmlReaderContext读取器上下文中的registry中。...原创 2022-06-26 15:44:10 · 203 阅读 · 0 评论 -
XmlBeanDefinitionReader解读
是三大读取器的其中一个,继承于。是为了读取Xml文件中的Bean而设计出来的。内部有registry成员属性,理所当然可以往IOC容器里面添加BeanDefinition。继承于,必定也能将BeanDefinition注册到容器里面。请记住这个AbstractBeanDefinitionReader中的成员属性,因为后面XmlBeanDefinitionReader会通过调用AbstractBeanDefinitionReader的getRegistry()拿到这个成员属性DTD和XSDDTD(文档类原创 2022-06-26 15:42:30 · 1284 阅读 · 0 评论 -
BeanDefinitionReader接口解读
BeanDefinitionReader是一个BeanDefinition读取器的接口,实现了改接口的Reader可以从不同的资源文件中加载bean到beanFactory中。BeanDefinitionReader的实现类如图,BeanDefinitionReader主要的实现类有:XmlBeanDefinitionReader,GroovyBeanDefinitionReader,PropertiesBeanDefinitionReader,分别可以从xml文件,Properties文件和Groov原创 2022-06-26 15:40:07 · 328 阅读 · 0 评论 -
AbstractBeanDefinitionReader解读
AbstractBeanDefinitionReader是读取BeanDefinition一个抽象类,他已经实现了部分BeanDefinitionReader接口的部分方法,并且内部维护着一个成员变量registry,这个registry变量是BeanDefinitionRegistry接口的实现类对象,BeanDefinitionRegistry接口提供了关于 BeanDefinition 的注册、移除、查询等一系列的操作。我们主要读AbstractBeanDefinitionReader的成员属性和构造原创 2022-06-25 16:14:57 · 241 阅读 · 0 评论 -
FactoryBean解读
在Spring中有两种类型的bean,一种是普通Bean,一种是工厂Bean,即FactoryBean。FactoryBean是一个工厂Bean,创建的bean是getObject方法返回的对象。一般用于创建比较复杂的bean。当实例化Bean过程比较复杂,按照传统的方式,需要在中提供大量的配置信息。配置方法的灵活性受限,这时采用编码方式可能会得到一个简单的方案。这时spring官方提供了FactoryBean来解决这个问题。用户有实现FactoryBean即可按Java的编程逻辑去实现负责bean的实例化原创 2022-06-25 16:08:10 · 1457 阅读 · 0 评论 -
BeanDefinitionRegistry接口解读
BeanDefinitionRegistry 是一个接口,它定义了关于 BeanDefinition 的注册、移除、查询等一系列的操作。基本所有BeanFactory接口的实现类都会实现BeanDefinitionRegistry接口,因为要对外提供BeanDefinition 的注册、移除、查询等一系列的操作。基本所有BeanFactory接口的实现类都默认会维护一张beanDefinitionMap表,并且实现BeanDefinitionRegistry接口对这张表进行操作。...原创 2022-06-25 03:48:46 · 328 阅读 · 0 评论 -
AbstractBeanDefinition解读
AbstractBeanDefinition是实现了BeanDefinition接口的一个抽象类,是一个BeanDefinition的一个基础抽象类。许多BeanDefinition实现类都继承了AbstractBeanDefinition,如:AbstractBeanDefinition源码成员属性AbstractBeanDefinition中添加了一系列成员属性,跟BeanDefinition接口接口方法相关。部分构造函数AbstractBeanDefinition有一些深复制的构造函数ov原创 2022-06-25 03:46:27 · 552 阅读 · 0 评论 -
BeanDefinition
BeanDefinition是一个描述了 Bean 实例,实例包含属性值、构造方法参数值以及更多实现信息接口。主要提供描述bean和修改bean的信息的一个接口对象。一般情况下BeanDefinition对象会在BeanDefinitionReader读取资源文件时生成并注入到IOC容器中(BeanFactory,ApplicationContext)。如:XmlBeanDefinitionReader,就会读取Xml文件并将解析xml文件中的Bean的配置信息转换为BeanDefinition,并注册到X原创 2022-06-25 03:43:17 · 508 阅读 · 0 评论 -
GenericApplicationContext类解析
GenericApplicationContext通用应用程序上下文实现,该实现内部有一个 DefaultListableBeanFactory 实例。可以采用混合方式处理bean的定义,而不是采用特定的bean定义方式来创建bean。GenericApplicationContext基本就是对DefaultListableBeanFactory 做了个简易的封装,几乎所有方法都是使用了DefaultListableBeanFactory的方法去实现。GenericApplicationContext更多是原创 2022-06-25 03:42:08 · 1591 阅读 · 0 评论 -
AbstractApplicationContext抽象类解读
一个抽象应用程序上下文,主要实现了上下文初始化的功能,如:定义了初始化,初始化一些,初始化(国际化),还要一些事件广播器等等因为是抽象类,其实其中一些初始化操作还是交个子类实现,如初始化,在只是做了简单的定义,具体实现还是交个子类。子类根据实际情况选择使用那种并进行初始化。是一个比BeanFactory更具丰富IOC容器接口,而是其的一个抽象实现,定义和实现了一系列的初始化流程。obtainFreshBeanFactoryprepareBeanFactory该方法主要用于配置BeanFactory,原创 2022-06-25 03:41:15 · 871 阅读 · 0 评论 -
ApplicationContext接口解读
在使用Spring的时候,我们经常需要先得到一个ApplicationContext对象,然后从该上下文中获取我们配置的Bean对象。我们知道ApplicationContext是一个接口,实现了改接口的实现类都可以看作一个IOC容器,我们可以从ApplicationContext中拿到注册的Beans。ApplicationContext隶属于org.springframework.context,是SpringFramework中Bean的管理者,为SpringFramework的诸多功能提供支撑作用。原创 2022-06-25 03:38:51 · 1280 阅读 · 0 评论 -
spring中的ConversionService
ConversionService是spring中的一个转换服务,可以通过转换服务进行数据类型的转换,如:String转换为Date。Converter测试结果打印在applicationContext的BeanFactory初始完整时,会调用方法,该方法中有一步操作会将beanFactory中的放到成员属性中。iguration();...原创 2022-06-25 03:36:17 · 963 阅读 · 0 评论 -
spring中的Lifecycle
是spring中的生命循环接口,实现该接口的类将会可以启动,关闭。在通过接口中就实现了,当上下文调用函数时,就会去BeanFactory中找实现了接口的Bean,并调用该bean的函数。中有方法,用来初始化生命周期执行器,用以执行容器中所有实现了接口的bean。start()和stop()中的方法用来启动生命周期。通过来去启动中的实现了接口的bean。DefaultLifecycleProcessor源码分析start()和startBeans()通过从中获取,并调用它们的方法Lifecycle原创 2022-06-25 03:35:15 · 2250 阅读 · 0 评论 -
XmlBeanFactory类解读
XmlBeanFactory类解读XmlBeanFactory介绍XmlBeanFactory继承于DefaultListableBeanFactory,拥有BeanFactory默认的所有功能。XmlBeanFactory只是在DefaultListableBeanFactory的基础上添加了一个XmlBeanDefinitionReader(用以专门读取XML文件中的bean),所有XmlBeanFactory是一个专门读取xml文件中的bean而创建出来的BeanFactory。并且XmlBe原创 2022-04-17 21:36:01 · 647 阅读 · 0 评论 -
ListableBeanFactory解读
ListableBeanFactory解读文章目录ListableBeanFactory解读ListableBeanFactory介绍ListableBeanFactory源码ListableBeanFactory介绍ListableBeanFactory是BeanFactory的子接口,除了BeanFactory的功能外,还格外定义一些能遍历和查找BeanDefinition的方法。ListableBeanFactory源码上网找了个翻译,其实也不用细看,就是一些遍历和查找BeanDefinit原创 2022-04-17 20:55:21 · 492 阅读 · 0 评论 -
HierarchicalBeanFactory接口解读
HierarchicalBeanFactory接口解读文章目录HierarchicalBeanFactory接口解读HierarchicalBeanFactory介绍HierarchicalBeanFactory源码HierarchicalBeanFactory介绍HierarchicalBeanFactory是BeanFactory接口的子接口,也是BeanFactory三大直系接口之一,主要是为了实现了Bean工厂的分层。HierarchicalBeanFactory源码Hierarchica原创 2022-04-17 20:53:54 · 729 阅读 · 0 评论 -
ConfigurableBeanFactory解读
ConfigurableBeanFactory解读ConfigurableBeanFactory介绍ConfigurableBeanFactory是一个接口,提供配置BeanFactory的各种方法,继承HierarchicalBeanFactory, SingletonBeanRegistry这两个接口。提供了配置父容器,注册bean,添加BeanPostProcessor,设置Bean表达式分解器等功能public interface ConfigurableBeanFactory extend原创 2022-04-17 20:49:53 · 633 阅读 · 0 评论 -
DefaultListableBeanFactory 解读
DefaultListableBeanFactory 解读DefaultListableBeanFactory介绍BeanFactory是个Factory,也就是IOC容器或对象工厂,而DefaultListableBeanFactory是Bean工厂的一个默认实现,DefaultListableBeanFactory提供了原始的BeanFactory的功能,如:对外提供getbean()方法,维护一张beanDefinitionMap表getbeanDefaultListableBeanFacto原创 2022-04-17 20:52:07 · 6486 阅读 · 0 评论 -
BeanFactory接口解读
BeanFactory接口解读文章目录BeanFactory接口解读BeanFactory的介绍BeanFactory接口源码BeanFactory直属派生接口BeanFactory与BeanDefinitionRegistryBeanFactory和ApplicationContext关系BeanFactory的介绍在Spring中,BeanFactory是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。BeanFactory只是个接口,并不是IOC容器原创 2022-04-15 20:51:11 · 1022 阅读 · 0 评论 -
spring MVC RequestMappingHandlerMapping解析
spring MVC RequestMappingHandlerMapping解析getHandler(HttpServletRequest request)在doDispatch(HttpServletRequest request, HttpServletResponse response)中,调用过getHandler(HttpServletRequest request)。DispatcherServlet)的getHandler(HttpServletRequest request方法,该原创 2021-08-16 15:05:00 · 1380 阅读 · 0 评论 -
spring mvc DispatcherServlet解读
spring mvc DispatcherServlet解读DispatcherServlet的继承和实现IDEA按快捷键:ctrl+alt+u,就可以查看DispatcherServlet的继承的类和实现的接口。从继承图可以得知:DispatcherServlet本质是一个HttpServletHttpServletBean,FrameworkServlet,DispatcherServlet是属于SpringMVC的类DispatcherServlet初始化DispatcherSer原创 2021-08-15 15:01:49 · 653 阅读 · 0 评论