您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
Spring IoC源码精讲
字数: 624000
装帧: 平装
出版社: 清华大学出版社
作者: 王涛
出版日期: 2022-09-01
商品条码: 9787302601319
版次: 1
开本: 16开
页数: 408
出版年份: 2022
定价:
¥99.8
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
编辑推荐
采用由浅入深、由易到难的讲解模式,结合案例,全面剖析Spring IoC源码
内容简介
本书从Spring IoC核心技术的使用开始讲解,具备充分的Spring IoC使用说明,并且对Spring IoC核心源码进行分析。 本书分为22章,主要内容包括SpringXML模式中XML文档的验证、XML资源读取、Spring默认标签的解析、自定义标签解析、各类资源对象注册和生命周期,以及Spring注解模式中的注解元数据、注解模式的启动和注解模式下Bean的注册等。本书可以帮助读者快速掌握Spring IoC容器的基本使用及Spring IoC相关的源码逻辑。 本书的源码分析在大部分情况下遵循测试用例优先,尽可能保证源码现象可复现。 本书适合具有一定Java编程基础和对Spring框架有基本开发能力的读者。
作者简介
王涛,长期从事Java EE、微服务相关技术领域的开发,对Spring系列框架、MyBatis等其他开源框架都有深刻认识。
目录
第1章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标签解析
……
摘要
第3章自定义标签解析 在第1章中对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,文件内容如下。
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文件中填写下面这段内容。 http\://www.huifer.com/schema/user=com.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 !=
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网