spring ioc源码精讲 编程语言 王涛 新华正版
详细分析spring ioc技术的使用,配有大量案例
¥
66.7
6.7折
¥
99.8
全新
库存4件
作者王涛
出版社清华大学出版社
ISBN9787302601319
出版时间2022-09
版次1
装帧平装
开本16开
页数408页
字数624千字
定价99.8元
货号xhwx_1202742023
上书时间2023-12-29
商品详情
- 品相描述:全新
-
正版特价新书
- 商品描述
-
主编:
采用由浅入深、由易到难的讲解模式,结合案例,全面剖析springioc源码
目录:
章spring容器环境搭建及基本使用
1.1spring容器环境搭建
1.2spring基本代码编辑
1.3springioc核心类
小结
第2章ioc资源读取及注册
2.1xml文档验证
2.1.1认识xml验证模式
2.1.2spring中xml的验证
2.2document对象获取
2.3beandefinition注册
2.3.1doregisterbeandefinitions流程
2.3.2parsebeandefinitions分析
2.3.3parsedefaultelementspring原生标签的处理
2.3.4import标签解析
2.3.5alias标签解析
2.3.6bean标签解析
……
内容简介:
本书从springioc核心技术的使用开始讲解,具备充分的springioc使用说明,并且对springioc核心源码进行分析。本书分为22章,主要内容包括springxml模式中xml文档的验证、xml资源读取、spring默认标签的解析、自定义标签解析、各类资源对象注册和生命周期,以及spring注解模式中的注解元数据、注解模式的启动和注解模式下bean的注册等。本书可以帮助读者快速掌握springioc容器的基本使用及springioc相关的源码逻辑。本书的源码分析在大部分情况下遵循测试用例优先,尽可能保证源码现象可复现。本书适合具有java编程基础和对spring框架有基本开发能力的读者。
作者简介:
王涛,长期从事javaee、微服务相关技术领域的开发,对spring系列框架、mybatis等其他开源框架都有深刻认识。
精彩内容:
第3章自定义标签解析
在章中对spring的简单使用进行了说明,简单介绍了bean标签的使用。bean标签属于spring的原生标签,在spring中除了原生标签以外还能够支持自定义标签,本章将介绍springxml配置文件中的自定义标签如何进行自定义、如何使用自定义标签,并对springxml的自定义标签相关的内容进行源码分析。
3.1创建自定义标签环境搭建
在开始自定义标签分析之前,需要先编写自定义标签解析相关的测试用例,编写自定义标签需要执行下面四个步骤。
(1) 编写xsd文件或者dtd文件。
(2) 编写namespacehandler实现类。
(3) 编写beandefinitionparser实现类。
(4) 编写注册方式,向spring中注册。
接下来对上述四个步骤做详细说明。
3.1.1编写 xsd 文件
首先编写一个java对象用来存储自定义标签解析后的数据,编写userxsdjava对象,代码信息如下。
//省略getter&setter
public class userxsd {
private string name;
private string idcard;
}
完成xsd文件解析结果的存储对象后进一步编写xsd文件,该xsd文件名为user.xsd,文件内容如下。
targetnamespace=": //.huifer./schema/user"
elementformdefault="qualified">
3.1.2编写 namespacehandler 实现类
完成xsd文件编写后进一步编写namespacehandler接的实现类,spring提供了namespacehandlersupport对象让开发者更加简单地使用,开发者只需要重写init方即可向spring注册标签和标签的解析对象,编写userxsdnamespacehandler类,详细代码如下。
public class userxsdnamespacehandler extends namespacehandlersupport {
@override public void init() {
registerbeandefinitionparser("user_xsd",new userxsdparser());
}
}
3.1.3编写 beandefinitionparser 实现类
在编写namespacehandler实现类的时候引入了一个新的java对象userxsdparser,该对象是beandefinitionparser接的实现类,在spring中可以通过继承abstractsinglebeandefinitionparser类重写getbeanclass和doparse方即可完成beandefinitionparser的实现,下面是userxsdparser的代码内容。
public class userxsdparser extends abstractsinglebeandefinitionparser {
@override
protected class> getbeanclass(element element) {
return userxsd.class;
}
@override
protected void doparse(element element,beandefinitionbuilder builder) {
string name = element.getattribute("name");
string idcard = element.getattribute("idcard");
builder.addpropertyvalue("name",name);
builder.addpropertyvalue("idcard",idcard);
}
}
在这段代码中通过提取element对象的name和idcard属将其设置到beandefinitionbuilder对象的属表中。
3.1.4编写注册方式
下面编写注册方式。注册自定义标签解析能力需要编写两个文件,一个是spring.handlers文件,另一个是spring.schemas文件。在这个测试用例中需要向spring.handlers文件中填写下面这段内容。
\://.huifer./schema/user=.source.hot.ioc.book.namespace.handler.
userxsdnamespacehandler
对于spring.handlers文件可以分成两部分来进行理解,部分是等号前面的内容,等号前的内容是指命名空间和xsd文件中schema中的targetnamespace属之间的关系; 第二部分是等号后面的内容,它是指接namespacehandler实现类的完整类路径。
完成spring.handlers编写后进一步编写spring().resolve(namespaceuri);
return handler.parse(ele,new parsercontext(this.readercontext,this,containingbd));
在这段代码中得到了namespacehandler对象,这个对象的实际类型是userxsdnamespacehandler,确认实际类型后对于parse方入的查询有了方向,parse方位于userxsdnamespacehandler的父类namespacehandlersupport中,具体代码如下。
public beandefinition parse(element element,parsercontext parsercontext) {
//搜索 element 对应的 beandefinitionparser
beandefinitionparser parser = findparserforelement(element,parsercontext);
//解析
return (parser !=
— 没有更多了 —
以下为对购买帮助不大的评价