前几天一直在运行 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 源码构建环境搭建指南 在本文中,我们将详细介绍如何使用 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框架是...
最近在看spring源码 搜集了这一本大家都推荐的《spring揭秘》PDF 非常不错,同时附带spring源码下载地址 以及编译方式,照着做就可以,本人已经测试; ps spring 涉及动态代理、反射、设计模式之类的先弄懂再看,...
在Spring框架的开发和学习过程中,源码分析是提升理解深度的重要途径。然而,有时候我们可能会遇到"spring源码报错缺失的两个包"这样的问题,这意味着我们的开发环境缺少了某些必要的依赖,导致Spring框架无法正常...
2. **查阅源码**:通过阅读源码,你可以了解Spring内部的实现细节,例如如何处理依赖注入、如何管理bean等。 3. **学习最佳实践**:通过对源码的学习,可以了解到Spring推荐的设计模式和最佳实践,提升自己的编程...