0%

概述

  1. BeanDefinition 简介
  2. 解析Bean标签

BeanDefinition简介

BeanDefinition 是一个接口,它描述了一个 Bean 实例,包括属性值、构造方法值和继承自其它的类的更多信息。Spring通过BeanDefinition将配置文件中的< bean >配置文件转换为容器的内部表示,并将这些BeanDefinition注册到BeanDefinitionRegistry中。Spring容器的BeanDefinitionRegistry就像是spring配置信息的内存数据库,主要以map的形式保存,后续操作直接从BeanDefinitionRegistry中直接获取配置信息。

阅读全文 »

概述

  1. LoadDocument源码分析
  2. EntityResolver分析

LoadDocument源码分析:

XmlBeanDefinitionReader.doLoadDocument() 方法中做了两件事情,一是调用 getValidationModeForResource() 获取 XML 的验证模式,二是调用 DocumentLoader.loadDocument() 获取 Document 对象。上篇博客已经分析了获取 XML 验证模式,这篇我们分析获取 Document 对象。

阅读全文 »

概述

  1. DTD与XSD的区别
  2. getValidationModeForResource() 分析

上一篇博客我们已经提到过,在核心逻辑方法 doLoadBeanDefinitions()中主要是做三件事情。

  1. 调用 getValidationModeForResource() 获取 xml 文件的验证模式
  2. 调用 loadDocument() 根据 xml 文件获取相应的 Document 实例。
  3. 调用 registerBeanDefinitions() 注册 Bean 实例。

这篇博客主要来分析获取xml文件的验证模式

阅读全文 »

java中有一个标准类 java.net.URL,该类在 Java SE 中的定位为统一资源定位器(Uniform Resource Locator),但是我们知道它的实现基本只限于网络形式发布的资源的查找和定位。虽然可以通过注册特定的处理器来扩展处理不同的地址前缀,但是这通常比较麻烦,而且不易于使用。另外,实际上资源的定义比较广泛,除了网络形式的资源,还有以二进制形式存在的、以文件形式存在的、以字节流形式存在的等等。而且它可以存在于任何场所,比如网络、文件系统、应用程序中。所以 java.net.URL 的局限性迫使Spring必须实现自己的资源加载策略,该资源加载策略需要满足如下要求:

  1. 职能划分清楚:资源的定义和资源的加载应该要有一个清晰的界限;
  2. 统一的抽象:统一的资源定义和资源加载策略。资源加载后要返回统一的抽象给客户端,客户端要对资源进行怎样的处理,应该由抽象资源接口来界定。
阅读全文 »

概述

学习了很久的NIO,但是一直对NIO中内存映射和DirectMemory有很多的不理解,恰好最近在读《深入理解操作系统》,对其中一些不理解的地点有了自己的一些感悟。此篇文章将结合操作系统谈谈自己对NIO中的内存映射和DirectMemory的理解。

阅读全文 »

概述

  1. jar技术简介及使用
  2. Manifest文件

jar技术简介及使用

本文主要是参照Lesson: Packaging Programs in JAR Files来写,如果你的英文不错,可以直接看这个java官方教程。

在开始看下文你需要确认你安装的jdk环境带有jar命令,只需要在命令行中输入jar -h看看能不能找到命令即可。如果你安装的是oracle JDK,那么这个命令已经内置在java开发套件中。
下文所使用的源代码地址gihub

阅读全文 »