架构探险-从零开始写JavaWeb框架黄勇计算机与互联网pdf下载pdf下载

架构探险-从零开始写JavaWeb框架黄勇计算机与互联网百度网盘pdf下载

作者:
简介:本篇主要提供架构探险-从零开始写JavaWeb框架黄勇计算机与互联网pdf下载
出版社:青草书店专营店
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

  商品基本信息,请以下列介绍为准
商品名称:架构探险-从零开始写Java Web框架
作者:黄勇著
定价:79.0
出版社:电子工业出版社
出版日期:2015-08-01
ISBN:9787121268298
印次:
版次:1
装帧:
开本:小16开

  内容简介
本书先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA、Maven、Git 等开发工具搭建 Java Web 应用;接着通过一个简单的应用场景,为该 Web 应用添加若干能,从需求分析与系统设计开始,带领读者动手完成该 Web 应用,完善相关细节,并对已有代行优化;然后基于传统 Servlet 框架搭建一款轻量级 Java Web 框架,一切都是从零开始,逐个实现类加载器、Bean 容器、IoC 框架、MVC 框架,所涉及的代码也是整个框架的核心基础。为了使框架具备 AOP 特性,从代理技术讲到 AOP 技术,从 ThreadLocal 技术讲到事务控制技术。*后对框行优化与扩展,通过对现有框架的优化,使其可以提供更加完能,并以扩展 Web 服务插件与控制插件为例,教会读者如何设计一款可扩展的Web应用框架。

  目录
第1章 从一个简单的Web应用1

正所谓“工欲善其事,必先利其器”,在正式开始设计并开发我们的轻量级Java Web框架之前,有必要先掌握以下技能:

使用IDEA搭建并开发Java项目;

使用Maven自动化构建Java项目;

使用Git管理项目源代码。

1.1 使用IDEA创建Maven项目3

1.1.1 创建IDEA项目3

1.1.2 调整Maven配置3

1.2 搭建Web项目框架5

1.2.1 转为Java Web项目5

1.2.2 添加Java Web的Maven依赖6

1.3 编写一个简单的Web应用10

1.3.1 编写 Servlet类10

1.3.2 编写JSP页面11

1.4 让Web应用跑起来12

1.4.1 在IDEA中配置Tomcat12

1.4.2 使用Tomcat的Maven插件13

1.4.3 以Debug方式运行程序13

1.5 将代码放入Git仓库中14

1.5.1 编写.gitignore文件14

1.5.2 提交本地 Git 仓库15

1.5.3 推送远程Git仓库15

1.5.4 总结16

第2章 为Web应用添加能17

我们将在这个应用的基础上增加一些能,您将学会更多有关项目实战的技能,具括:

如行需求分析;

如行系统设计;

如何编写应用程序。

2.1 需求分析与系统设计19

2.1.1 需求分析19

2.1.2 系统设计19

2.2 动手开发Web应用21

2.2.1 创建数据库22

2.2.2 准备开发环境22

2.2.3 编写模型层23

2.2.4 编写控制器层25

2.2.5 编写服务层27

2.2.6 编写单元测试28

2.2.7 编写视图层31

2.3 细节完善与代码优化31

2.3.1 完善服务层32

2.3.2 完善控制器层59

2.3.3 完善视图层60

2.4 总结65

第3章 搭建轻量级Java Web框架66

我们需要这样的框架,它足够轻量级、足够灵巧,不妨给它取一个优雅的名字——Smart Framework,本章我们就一起来实现这个框架。

您将通过本章的学握如下技能:

如何快速搭建开发框架;

如何加载并读取配置文件;

如何实现一个简单的IOC容器;

如何加载的类;

如何初始化框架。

3.1 确定目标68

3.2 搭建开发环境70

3.2.1 创建框架项目70

3.2.2 创建示例项目73

3.3 定义框架配置项74

3.4 加载配置项75

3.5 开发一个类加载器78

3.6 实现Bean容器87

3.7 实现依赖能90

3.8 加载Controller93

3.9 初始化框架97

3.10 请求转发器98

3.11 总结109

第4章 使框架具备AOP特性110

在本章中,读者将学到大量有用的技术,具括:

如何理解并使用代理技术;

如何使用Spring提供的AOP技术;

如何使用动态代理技术实现AOP框架;

如何理解并使用ThreadLocal技术;

如何理解数据库事务管理机制;

如何使用AOP框架实现事务控制。

4.1 代理技术简介112

4.1.1 什么是代理112

4.1.2 JDK动态代理114

4.1.3 CGlib动态代理116

4.2 AOP技术简介118

4.2.1 什么是AOP118

4.2.2 写死代码119

4.2.3 静态代理120

4.2.4 JDK动态代理121

4.2.5 CGLib动态代理122

4.2.6 Spring AOP124

4.2.7 Spring AspectJ136

4.3 开发AOP框架142

4.3.1 定义切面注解142

4.3.2 搭建代理框架143

4.3.3 加载AOP框架150

4.4 ThreadLocal简介158

4.4.1 什么是ThreadLocal158

4.4.2 自己实现ThreadLocal161

4.4.3 ThreadLocal使用案例163

4.5 事务管理简介172

4.5.1 什么是事务172

4.5.2 事务所面临的问题173

4.5.3 Spring的事务传播行为175

4.6 实现事务控制特性178

4.6.1 定义事务注解178

4.6.2 提供事务相关作181

4.6.3 编写事务代理切面类182

4.6.4 在框架中添加事务代理机制184

4.7 总结185

第5章 框架优能扩展186

本章将对现有框行优化,并提供一些能。通过本章的学者可以了解到:

如何优化Action参数;

如何实现文件能;

如何与Servlet API解耦;

如何实现控制框架;

如何实现Web服务框架。

5.1 优化Action参数188

5.1.1 明确Action参数优化目标188

5.1.2 动手优化Action参数使用方式188

5.2 提供文件上传特性191

5.2.1 确定文件上传使用场景191

5.2.2 实现文件能194

5.3 与Servlet API解耦214

5.3.1 为何需要与Servlet API解耦214

5.3.2 与Servlet API解耦的实现过程215

5.4 控制框架——Shiro219

5.4.1 什么是Shiro219

5.4.2 Hello Shiro220

5.4.3 在Web开发中使用Shiro224

5.5 提供控制特性230

5.5.1 为什么需要控制230

5.5.2 如何使用控制框架231

5.5.3 如何实现控制框架242

5.6 Web服务框架——CXF261

5.6.1 什么是CXF261

5.6.2 使用CXF开发SOAP服务262

5.6.3 基于SOAP的控制278

5.6.4 使用CXF开发REST服务291

5.7 提供Web服务特性308

5.8 总结329

附录A Maven快速入门330

附录B 将构件发布到Maven中央仓库342

  编辑推荐
 

  摘要

其实一开始黄勇找我为他的处女作写序的时候,我是拒绝的。因为你不能让我写,我马上就写。我要先看一下书,因为我不愿意写完后发现书很烂,然后读者来骂我乱推荐。
黄勇一直是开源中国活跃的会员,积极地回答各种问题和分享自己所擅长的知识。本身也是 Smart Framework 框架的作者,积分居然过千,要知道开源中国上超过 1000 积分的会员寥寥无几。我和黄勇并没有见过面,仅通过线上的信息大概觉得他是一个热情、虚怀若谷又接地气的技术牛人。
回归正题,2015年是 Java 的 20 周年。Java 是一门让我们又爱又恨的编程语言,在编程语言界里算是一棵老树,关键是这棵老树还频频长出新枝。Java 8 的出现使其具备了各种流行的编程理念,而全新的 Java 9 也已经奠定了Java发展的里程碑并将于2016年下半年发布正式版本。说起又爱又恨,在 Java 热的那几年里,满的 SSH (Struts+Spring+Hibernate),所有人都在讨论 SSH 框架里的奇技淫巧,也出现了各种图书和培训教程。很多初学者认为 Java = SSH,学 Java 就是学 SSH,以至于很多人用 SSH 做了不少项目,但依然对 Java、HTTP 等基础知识一知半解、不甚了了。
在 Web 开发方面,Java 经历了这么几个阶段,从最开始使用大量 Servlet 来处理各种业务逻辑,然后出现了的 Struts 框架简化了 Web 应用的开发以及配置,而后是 Hibernate 和 Spring 的出现,使这三者成为三驾马车,并行到现在。
而如今,确切地说应该是几年,Java 用户开始回归理性。由于 SSH 在不断发展的同时,体积也变得越来越庞大,很多人在使用的过程中被各种配置、注解弄得头昏脑涨。而前些年 Ruby on Rails 框架以其“惯例优于配置”的理念让我们猛然清醒——原来 Web 的开发就应该这么简单。于是越来越多的 Java 开发者开始考虑轻量级框架解决方案。而黄勇的 Smart Framework 就是这种轻量级解决方案之一。
Java 的从来不缺乏各种优秀的开源软件,理念成熟后大量的轻量级 Web 框架如雨后春笋般出现在我们眼前。在开源中国上你会发现 Java 的 Web 框架有超过 300 款之多。那么多的框架对初学者来说简直是噩梦。于是三年前我写了一篇文章《初学 Java Web 开发,请远离各种框架,从 Servlet 开发》,今天一看,这篇文章居然超过了21万阅读量。这篇文章是针对 Java 初学者的,因为很多人为了学框架而疲于奔命,但却从来没有思考为什么同样是做开发的,自己要比别人更累。最根本原因在于方法不对,半!
在招聘 Java 开发人员时我问的一个问题是:请解释一下 Session 的工作原理,从而来判断应聘者对基础知识的掌握情况。那么什么才是初学者学eb 开发的好方法呢?其实我在前面提到的文章含了详细的步骤,简单地说就是先要熟悉 Java EE 里关于 Servlet API 中的常用类和方法。在这个基础上再去学个框架的使用,最后是阅读 HTTP 协议的内容。想成为高手必须对 HTTP 协议有着深入的了解。一旦掌握了这些基础的内容,你会发现使用框架甚至是开发一个适合自己业务的框架是多么的容易。
而黄勇的这本书,虽然我只是看到书的目录以及前面两三章的内容,但相信这是一本对初学者好的书,没有华丽的词藻,实实在在地讲述了整个开发流程。这本书不是在教你怎么用 Smart Framework,而是展示了作者开发这个框架的整个心血历程括设计一个框架所用到的各种技术,还涉及了很多底层的 Java 技术,如类加载器、依赖注入、线程本地、事务管理和控制,等等。
不管是学在实际的开发中,少问怎么做,多问问为什么要这么做。或许,这就是黄勇想要告诉大家的吧。
红薯
开源中国(oschina.net)创始人
2015年6月12日
于北京到上海的 G123 列车上