前几天一直在运行 org.springframework.beans-3.0.4.RELEASE 自带的Test Projects. 运行很失望,因为很多都运行不起来
所以在想是粗粗的把源码读一遍呢还是锱铢必较,把每个小点都搞清楚。我选择了后者
今天终于小有收获。
成功的运行了 SimplePropertyNamespaceHandlerTests.java
50%明白了spring如何解析spring配置文件的,这50是spring如何验证配置的正确性。
看里面component-config.xml的例子
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:foo="http://www.foo.com/schema/component"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.foo.com/schema/component http://www.foo.com/schema/component/component.xsd">
<foo:component id="bionic-family" name="Bionic-1">
<foo:component name="Mother-1">
<foo:component name="Karate-1"/>
<foo:component name="Sport-1"/>
</foo:component>
<foo:component name="Rock-1"/>
</foo:component>
</beans>
整个过程应该是这样,查看schema中的 "xsi:schemaLocation" 前面是域名,后面是具体文件名。然后PluggableSchemaResolver会根据"META-INF/spring.schemas"里面的值。通过前面的文件名对应properties的值找到具体本地的xsd文件,然后进行resolve
通过这三个类
PluggableSchemaResolver 继承 EntityResolver 通过一个properties文件把url映射为本地文件
DelegatingEntityResolver 继承 EntityResolver
ResourceEntityResolver 继承 DelegatingEntityResolver
原来是有一个xsd文件,(恕我小白,一直被蒙在鼓里)。
分享到:
相关推荐
Spring源码深度解析第二版 Spring是一款广泛应用于Java企业级应用程序的开源框架,旨在简化Java应用程序的开发和部署。Spring框架的核心主要包括了IoC容器、AOP、MVC框架等模块。 第1章 Spring整体架构和环境搭建 ...
《Spring源码解析》 Spring框架作为Java领域最流行的开源框架之一,它的设计思想和实现原理一直是许多开发者深入研究的重点。本压缩包“Spring源码解析”提供了对Spring框架核心组件——IOC(Inversion of Control...
Spring 源码分析 Spring 框架是 Java 语言中最流行的开源框架之一,它提供了一个强大且灵活的基础设施来构建企业级应用程序。在 Spring 框架中,IOC 容器扮演着核心角色,本文将深入分析 Spring 源码,了解 IOC ...
这份"spring 源码中文注释"包含了对Spring框架源码的详细解读,对于理解其工作原理、优化代码以及定制化开发具有重要意义。 首先,我们来看看Spring的核心组件——IoC容器。IoC容器是Spring的核心,它负责管理对象...
Spring 源码环境搭建指南 在本文档中,我们将详细介绍如何搭建 Spring 源码环境,帮助读者快速入门 Spring 源码阅读。 标题解释 "spring 源码环境搭建" 是指搭建一个可以读取和编译 Spring 源码的开发环境。Spring...
Spring 源码注释中文版的提供,使得开发者能够更加深入地理解 Spring 的工作原理,无需经过复杂的编译过程,可以直接阅读源码注释来学习。 Spring 框架主要由以下几个关键模块组成: 1. **Core Container(核心...
2. **面向切面编程(Aspect-Oriented Programming, AOP)**:Spring的AOP模块支持在不修改源代码的情况下,对代码进行功能增强。这通常用于日志记录、事务管理等。在源码中,你会遇到`Advisor`、`Pointcut`和`Aspect...
在Eclipse中构建Spring源码项目,可以帮助我们深入理解Spring的工作原理,从而更好地利用它来构建高效、可维护的Java应用。以下将详细阐述如何构建和探索Spring源码。 1. **获取源码** Spring源码可以从官方GitHub...
学习Spring源码有助于深入理解其内部工作原理,例如bean的生命周期管理、AOP的实现、以及MVC的请求处理流程。这将有助于开发者更高效地利用Spring框架,编写出高质量、高性能的Java应用。通过分析源码,开发者还可以...
2. **spring-expression(Spring表达式语言,SpEL)**:SpEL是Spring框架的一部分,允许在运行时查询和操作对象图。它提供了一种强大的表达式语言,用于在运行时查询和操作对象图。例如,可以在配置文件中使用SpEL来...
包括`spring-context`、`spring-webmvc`、`spring-web`、`spring-beans`、`spring-core`、`spring-jdbc`、`spring-aop`、`spring-tx`、`spring-jms`以及`spring-expression`,通过源码解析,揭示其内部机制和设计...
Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring ...
Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring ...
Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring 源码深度剖析Spring ...
Spring 源码构建环境搭建指南 在本文中,我们将详细介绍如何使用 IDEA 和 Gradle 构建 Spring 源码环境,以便深入学习 Spring 源码。下面是具体的步骤和知识点总结。 一、下载 Spring 源码 下载 Spring 源码有两...
2. **IoC 容器**:IoC(Inversion of Control)容器是Spring的核心,负责管理和装配应用中的对象。BeanFactory是基础接口,提供了创建、查找和管理bean的能力。AbstractBeanFactory和DefaultListableBeanFactory是...
spring源码,spring源码,spring源码,spring源码,spring源码,spring源码,pring源码,spring源码,spring源码,spring源码,spring源码,spring源码,spring源码,pring源码,pring源码,pring源码,pring源码,...
《Spring源码分析》这份资料深入探讨了Spring框架的核心机制,尤其聚焦于Spring5版本。Spring作为Java领域中最重要的轻量级应用框架之一,它的设计理念、实现方式以及工作原理对于任何想成为优秀Java开发者的人都至...
《Spring5 源码分析(第 2 版)》是某Tom老师精心编写的深度解析文档,旨在帮助读者全面理解Spring5的核心机制和设计理念。Spring作为Java领域最为广泛应用的框架之一,其源码的深入理解对于开发者来说至关重要。这篇...
《Spring攻略(第二版)书籍源码》是一个深入学习Spring框架的重要资源,它包含了作者在编写书籍过程中所使用的完整代码示例。这份源码旨在帮助读者更好地理解和实践Spring框架的各种功能和最佳实践。 Spring框架是...