spring ioc源码精讲 编程语言 王涛 新华正版
¥
65.9
6.6折
¥
99.8
全新
库存4件
作者王涛
出版社清华大学出版社
ISBN9787302601319
出版时间2022-09
版次1
装帧平装
开本16
页数408页
字数624千字
定价99.8元
货号xhwx_1202742023
上书时间2024-04-27
商品详情
- 品相描述:全新
-
正版特价新书
- 商品描述
-
主编:
采用由浅入深、由易到难的讲解模式,结合案例,全面剖析pring ioc源码
目录:
章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标签解析
……
内容简介:
本书从pring ioc核心技术的使用开始讲解,具备充分的pring ioc使用说明,并且对pring ioc核心源码进行分析。
本书分为22章,主要内容包括pringxml模式中xml文档的验证、xml资源读取、pring默认标签的解析、自定义标签解析、各类资源对象注册和生命周期,以及pring注解模式中的注解元数据、注解模式的启动和注解模式下bean的注册等。本书可以帮助读者快速掌握pring ioc容器的基本使用及pring ioc相关的源码逻辑。
本书的源码分析在大部分情况下遵循测试用例优先,尽可能保证源码现象可复现。
本书适合具有java编程基础和对pring框架有基本开发能力的读者。
作者简介:
王涛,长期从事java ee、微服务相关技术领域的开发,对pring系列框架、mybati等其他开源框架都有深刻认识。
精彩内容:
第3章自定义标签解析
在章中对pring的简单使用进行了说明,简单介绍了bean标签的使用。bean标签属于pring的原生标签,在pring中除了原生标签以外还能够支持自定义标签,本章将介绍pringxml配置文件中的自定义标签如何进行自定义、如何使用自定义标签,并对pringxml的自定义标签相关的内容进行源码分析。
3.1创建自定义标签环境搭建
在开始自定义标签分析之前,需要先编写自定义标签解析相关的测试用例,编写自定义标签需要执行下面四个步骤。
(1) 编写xd文件或者dtd文件。
(2) 编写namepacehandler实现类。
(3) 编写beandefinitionparer实现类。
(4) 编写注册方式,向pring中注册。
接下来对上述四个步骤做详细说明。
3.1.1编写 xd 文件
首先编写一个java对象用来存储自定义标签解析后的数据,编写uerxdjava对象,代码信息如下。
//省略getteretter
public cla uerxd {
private tring name;
private tring idcard;
}
完成xd文件解析结果的存储对象后进一步编写xd文件,该xd文件名为uer.xd,文件内容如下。
3.1.2编写 namepacehandler 实现类
完成xd文件编写后进一步编写namepacehandler接的实现类,pring提供了namepacehandlerupport对象让开发者更加简单地使用,开发者只需要重写init方法即可向pring注册标签和标签的解析对象,编写uerxdnamepacehandler类,详细代码如下。
public cla uerxdnamepacehandler extend namepacehandlerupport {
@override public void init() {
regiterbeandefinitionparer("uer_xd",new uerxdparer());
}
}
3.1.3编写 beandefinitionparer 实现类
在编写namepacehandler实现类的时候引入了一个新的java对象uerxdparer,该对象是beandefinitionparer接的实现类,在pring中可以通过继承abtractinglebeandefinitionparer类重写getbeancla和dopare方法即可完成beandefinitionparer的实现,下面是uerxdparer的代码内容。
public cla uerxdparer extend abtractinglebeandefinitionparer {
@override
protected cla getbeancla(element element) {
return uerxd.cla;
}
@override
protected void dopare(element element,beandefinitionbuilder builder) {
tring name = element.getattribute("name");
tring idcard = element.getattribute("idcard");
builder.addpropertyvalue("name",name);
builder.addpropertyvalue("idcard",idcard);
}
}
在这段代码中通过提取element对象的name和idcard属将其设置到beandefinitionbuilder对象的属表中。
3.1.4编写注册方式
下面编写注册方式。注册自定义标签解析能力需要编写两个文件,一个是pring.handler文件,另一个是pring.chema文件。在这个测试用例中需要向pring.handler文件中填写下面这段内容。
\://.huifer./chema/uer=.ource.hot.ioc.book.namepace.handler.
uerxdnamepacehandler
对于pring.handler文件可以分成两部分来进行理解,部分是等号前面的内容,等号前的内容是指命名空间和xd文件中chema中的targetnamepace属之间的关系; 第二部分是等号后面的内容,它是指接namepacehandler实现类的完整类路径。
完成pring.handler编写后进一步编写pring().reolve(namepaceuri);
return handler.pare(ele,new parercontext(thi.readercontext,thi,containingbd));
在这段代码中得到了namepacehandler对象,这个对象的实际类型是uerxdnamepacehandler,确认实际类型后对于pare方法入的查询有了方向,pare方法位于uerxdnamepacehandler的父类namepacehandlerupport中,具体代码如下。
public beandefinition pare(element element,parercontext parercontext) {
//搜索 element 对应的 beandefinitionparer
beandefinitionparer parer = findparerforelement(element,parercontext);
//解析
return (parer !=
— 没有更多了 —
以下为对购买帮助不大的评价