
spring
戀戀
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BeanFactory 与 FactoryBean的区别
首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂FactoryBean:以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接口的Bean,根据该Bean的Id从BeanFactory中获取的实际上转载 2017-09-15 10:11:41 · 265 阅读 · 0 评论 -
Spring源码深度解析(七)获取Document
经过了验证模式准备的步骤就可以进行Document加载了,XmlBeanFactoryReader类对于文档读取并没有亲历亲为,而是委托给了DocumentLaoder去执行,DocumentLoader是个接口,真正调用的是DefaultDocumentLoader,解析代码如下:ddzaidf 在这里提及下EntityResolver,对于参数entityResolver转载 2017-09-01 11:32:31 · 182 阅读 · 0 评论 -
Spring源码深度解析(六)获取XML的验证模式
了解XML文件的都知道,XML文件的验证模式保证了XML文件的正确性,而比较常用的验证模式有两种:DTD和XSD.它们之间区别是:DTD与XSD验证模式的区别地方DTD(Document Type Definition)即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。DTD是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和转载 2017-09-01 11:31:58 · 201 阅读 · 0 评论 -
Spring源码深度解析(五)加载Bean
之前提到的在XmlBeanFactory构造函数中调用了XmlBeanDefinitionReader类型的reader属性提供的方法this.reader.loadBeanDefinitions(resource),而这句代码则是整个资源加载的切入点,我们先来看看这个方法的时序图,如图2-9所示:看到图2-9我们才知道,原来饶了这么久还没有切入正题,还一直在为加载XML文件和解析转载 2017-09-01 11:29:27 · 222 阅读 · 0 评论 -
Spring源码深度解析(四)容器的基础XmlBeanFactory
现在我们已经对Spring的容器有了一个大概的了解,尽管很多地方还很迷糊,但是不要紧,下面我们开始探讨每个步骤的详细实现。接下来我们要深入分析以下代码的实现:BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));通过XmlBeanFactory初始化时序图,图2—7,我们看转载 2017-09-01 11:22:17 · 255 阅读 · 0 评论 -
Spring源码深度解析(三)Spring的结构组成
(1)beans包的层级结构阅读源码最好的方式是通过示例跟着操作走一遍,大多数时候可能会被复杂源码绕来绕去,绕到自己不知道身在何处,如果配合UML还是可以搞定的。我们先来spring-beans包的源码结构beans包中各个源码的功能如下。src/main/java用于展现Spring的主要逻辑src/mian/resources用于存放系统的配置文件src转载 2017-09-01 11:00:17 · 209 阅读 · 0 评论 -
Spring源码深度解析(二)容器的基本用法
bean是spring中最核心的东西,我们看看bean的定义。public class MyTestBean{ private String testStr="testStr"; public String getTestStr(){ return testStr; }转载 2017-09-01 10:59:20 · 186 阅读 · 0 评论 -
Spring源码深度解析(一)Spring的整体架构
spring框架是一个分层架构,它包含一系列的功能要素,被分为大约20个模块,如下图所示:这些模块被总结为以下几个部分:(1)Core ContainerCore Container(核心容器)包含有Core,Beans,Context,Expression Language模块。Core 和 Beans模块是框架的基础部分,提供IOC(控制反转)和依赖转载 2017-09-01 10:58:40 · 267 阅读 · 0 评论 -
ServletContext与Web应用以及Spring容器启动
一、ServletContext对象获取DemoServlet容器在启动时会加载Web应用,并为每个Web应用创建唯一的ServletContext对象。可以把ServletContext看作一个Web应用的服务器端组件的共享内存。在ServletContext中可以存放共享数据,有4个读取或者设置共享数据的方法:方法名描述setAttr转载 2017-09-15 10:13:07 · 344 阅读 · 0 评论 -
Spring源码深度解析(八)解析及注册BeanDefinitions
从下面开始说:这段代码还比较清晰,在Spirng的配置里面有两大类Bean声明,一个是默认的,如:另一类就是自定义的,如:两种方式解析差别还挺大的,如果采用spring默认配置,Spring自然知道怎么做,而如果使用自定义的方式需要增加一些接口和配置了。转载 2017-09-01 11:33:05 · 162 阅读 · 0 评论