
spring源码解析
ljz2016
这个作者很懒,什么都没留下…
展开
-
扩展springmvc对jsp的查找范围
本文目的是,让视图解析器优先去项目下找jsp,找不到再去WEB-INF下面找。首先,注册2个视图解析器,一个去外面,一个去里面找。 <bean id="viewResolver0" class="com.cmst.springexpand.UdInternalResourceViewResolver"> <property name="order" value="1"/>原创 2018-02-08 10:26:27 · 211 阅读 · 0 评论 -
spring源码(十四)--GenericBeanDefinition
这个类没有父类以及接口。一般调用parseCustomElement(Element ele)方法:根据节点所属的命名空间,从readerContext中获取相应的处理器,由处理器进行实际的解析。命名空间处理器property-overridePropertyOverrideBeanDefinitionParserannotation-configAnnotio...原创 2018-09-19 14:50:45 · 5067 阅读 · 0 评论 -
spring源码(八)--ResourceEntityResolver(dtd xsd及其它)
类层次图: EntityResolver是jdk中rt.jar包中的接口,接口中只有一个方法public abstract InputSource resolveEntity (String publicId,String systemId) throws SAXException, IOException;DelegatingEntityResolver类实现了...原创 2018-09-14 15:36:05 · 1118 阅读 · 0 评论 -
spring源码(十五)--getBean方法
所有的getBean方法调用,不管是在哪个类中,都是调用的AbstractBeanFactory中的getBean方法。getBean方法又调用了doGetBean(也在这个类中,并且没有被子类覆盖)doGetBean方法:通过name(name可能是别名,所以要处理下)获取beanName(对于一个类而言,是唯一的)从singletonObjects(一个map)中获取单例的bean...原创 2018-09-29 15:10:59 · 5381 阅读 · 0 评论 -
spring源码(十六)--ClassPathXmlApplicationContext
ClassPathXmlApplicationContext是应用的起点,通常调用下面的构造函数,参数为配置文件的地址 public ClassPathXmlApplicationContext(String configLocation) throws BeansException { this(new String[]{configLocation}, true, (App...原创 2019-02-07 00:25:41 · 351 阅读 · 0 评论 -
spring源码(十七)--DefaultSingletonBeanRegistry
singletonObjects存储了所有的单例实例,k-v: name-ref。4个集合容器用来存储实例 private final Map&amp;lt;String, Object&amp;gt; singletonObjects = new ConcurrentHashMap(256); private final Map&amp;lt;String, ObjectFactory&amp;lt;?&am原创 2019-01-18 09:53:59 · 315 阅读 · 0 评论 -
spring源码(十八)--BeanDefinitionParserDelegate
BeanDefinitionParserDelegate用来解析spring的配置文件的以bean开头的配置,parseBeanDefinitionElement方法解析。bean的id和name属性的作用差不多,name属于别名性质的,都是唯一不能重复的。public BeanDefinitionHolder parseBeanDefinitionElement(Element ele, ...原创 2019-01-31 23:44:36 · 491 阅读 · 0 评论 -
spring源码(十九)--ContextNamespaceHandler
ContextNamespaceHandler是用来解析spring.xml配置文件中context命名空间下的节点的。这个类的对象在初始化时,又注册了下面的解析器用于解析相应节点。public void init() { this.registerBeanDefinitionParser("property-placeholder", new PropertyPlacehol...原创 2019-02-04 23:56:03 · 594 阅读 · 0 评论 -
spring源码(二十)--AopNamespaceHandler
AopNamespaceHandler这个类用于解析spring的配置文件中aop命名空间下的节点,默认注册下面的几个解析器。常用的是aspectj-autoproxy,所以这里分析下AspectJAutoProxyBeanDefinitionParser解析器。 public void init() { this.registerBeanDefinitionParser("co...原创 2019-02-06 16:24:05 · 350 阅读 · 0 评论 -
spring源码(七)--PathMatchingResourcePatternResolver(由路径到Resource,解析常规资源)
类层次图 接口中方法,返回值Resource在第四篇有解析public interface ResourceLoader { String CLASSPATH_URL_PREFIX = &quot;classpath:&quot;; Resource getResource(String var1); ClassLoader getClassLoader();}子接口...原创 2018-09-14 14:50:03 · 6693 阅读 · 0 评论 -
spring源码(十三)--import、bean、beans节点解析
对于spring的配置文件中的Import元素节点&amp;amp;lt;import resource=&amp;quot;classpath:spring-shiro.xml&amp;quot;/&amp;amp;gt;由以下方法解析委托environment解析resource的路径,是url就使用完整路径解析,否则使用相对路径解析从readerContext中获取reader解析所有bean,后面就和第十一篇的流原创 2018-09-19 14:38:33 · 895 阅读 · 0 评论 -
spring源码(十一)--DefaultBeanDefinitionDocumentReader(spring配置文件解析)
DefaultBeanDefinitionDocumentReader的类层次图:接口中定义了一个方法,注册xml中的beanpublic interface BeanDefinitionDocumentReader { void registerBeanDefinitions(Document var1, XmlReaderContext var2) throws BeanDef...原创 2018-09-19 14:05:50 · 889 阅读 · 1 评论 -
SpringMVC--GenericFilterBean解析
GenericFilterBean 实现了这些接口:public abstract class GenericFilterBean implements Filter, BeanNameAware, EnvironmentAware, EnvironmentCapable, ServletContextAware, InitializingBean, DisposableBeanFilt...原创 2018-02-08 14:10:57 · 13517 阅读 · 1 评论 -
spring源码(二)--BeanFactory
先看这个类的继承关系图: 类名 作用 AliasResgistry 定义对alias简单的增删改操作 SimpleAliasRegistry 使用map作为alias的缓存,并对接口AliasRegistry实现 SingletonBeanRegistry 定义了对单例的注册和获取 DefaultSingletonBeanRegis...原创 2018-12-11 15:37:11 · 405 阅读 · 0 评论 -
spring源码(四)--ClassPathResource
类继承层次图: 类名 作用 InputStreamSource 定义了获取InputStream的方法 Resource 定义了资源属性的获取方法 AbstractResource 对Resource方法做了实现 AbstractResolvingResource 对AbstractResource 的方法做了覆盖 Cl...原创 2018-09-12 15:28:16 · 9104 阅读 · 0 评论 -
spring源码(一)--ContextLoaderListener
在spring框架存在的web项目中,需要在web.xml中配置&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;listener&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;listener-class&amp;amp;amp;amp;amp;amp;amp原创 2018-12-11 14:42:08 · 806 阅读 · 0 评论 -
spring源码(五)--DefaultDocumentLoader
DocumenLoader的类层次图: 接口中只定义了一个方法loadDocument:public interface DocumentLoader { Document loadDocument(InputSource var1, EntityResolver var2, ErrorHandler var3, int var4, boolean var5) throws ...原创 2018-09-14 16:22:22 · 573 阅读 · 0 评论 -
spring源码(六)--XmlValidationModeDetector(获取xml文档校验模式)
这个类决定xml文件的验证模式核心方法为detectValidationMode,获取一个指定xml文件的输入流,读取其中的验证模式。/** 校验inputStream,如果xml文件含有doctype,则是dtd约束(返回2),否则是xsd约束(返回3)*/ public int detectValidationMode(InputStream inputStream) ...原创 2018-09-13 13:53:24 · 1534 阅读 · 3 评论 -
spring源码(十)--ComponentScanBeanDefinitionParser(以及命名空间处理器)
这是用来解析xml文件中,componentscan 标记的大体上分三步:获取 base-package属性,使用,; 分割每个目录创建scanner使用scanner解析目录中所有的文件方法为public BeanDefinition parse(Element element, ParserContext parserContext) { String basePa...原创 2018-09-19 10:33:09 · 704 阅读 · 0 评论 -
spring源码(三)--XmlBeanDefinitionReader
类继承层次图:类名作用BeanDefinitionReader定义资源文件读取并转换为BeanDefinition的功能EnvironmentCapable定义了获取Environment的方法AbstractBeanDefinitionReader对上面2个接口做了实现XmlBeanDefinitionReader读取配置文件的大致流程通过继...原创 2018-09-19 10:56:37 · 584 阅读 · 2 评论 -
springmvc--DispatcherServlet
原创 2019-02-08 00:27:05 · 185 阅读 · 0 评论