书海网短评:
海报: 《架构探险:从零开始写JavaWeb框架》首先从一个简单的Web应用开始,让读者学会如何使用IDEA、Maven、Git等开发工具搭建JavaWeb应用;接着通过一个简单的
海报:
这年头出一本关于Java的书需要勇气,因为很容易会被归类到“烂大街”的分类里头,市面上不凡“XXX深入浅出”、“21天精通Java”之类。推荐下面这《架构探险:从零开始写Java Web框架》的主要原因是该书的作者是我的朋友,众所周知我的朋友必须是大牛——来自阿里巴巴系统架构师黄勇,同时也是Java开源框架SmartFramework的作者。《架构探险:从零开始写Java Web框架》从Java基础讲起,到IDE开发环境,到应用实践,难得的是还花了大量篇幅把基于Java架构系统常用的开源软件也以架构师的角度逐一介绍了,吃Java这碗饭的同学可以拜读一下。
——开源中国COO王永和
勇哥,您好!您的书我看到第三章了,写的非常好,收获很多,谢谢!《架构探险:从零开始写Java Web框架》内容通俗易懂,由浅入深,一步一步带领着我们实现自己的JavaWeb框架,MVC、IOC、AOP、事务控制等面面俱到。不想当将军的士兵不是好士兵,不想当架构师的程序员不是好程序员,《架构探险:从零开始写Java Web框架》是通往架构师之路不能不读的一部佳作。
——开源中国网友陈浩
这《架构探险:从零开始写Java Web框架》由表及里讲解精细,既适合于初级Java开发学习基础,又适合中级甚至高级Java攻城狮巩固基础,通过借鉴来提高自己。因为该书是回归基础,从简单的Servlet开始剖析一些我们经常用到的知识点或者框架比如代理模式,、AOP、CXF等等,抛开了复杂的SSH,很喜欢也很受用,希望看完以后能够让自己的水平有个质的飞跃。感谢作者能够毫不保留的分享自己的经验。
——开源中国网友康良
书中从开发工具入手,不仅让我们熟练使用IDE,更让我们一步一步熟悉Servlet到搭建轻量级框架,精简易懂,由类加载器到实现请求转发,使我们更清楚理解Servlet生命周期及请求过程,夯实基础,提高学习能力,以及附录中提供的项目构建工具与IDE结合在一起,更能节约读者时间。
——开源中国网友何银
作为一名开发人员,我们学习的并不应该是一个架构,而是开发这个架构的过程,已经在这个过程当中我们所需要具体的知识和能力,最后为编写一个适合自己的架构,这才叫一个完整的学习,相信也是作者出书的目的,这也叫做授人以鱼不如授人以渔。
——CSDN网友kliang77
不要重复制造轮子不代表不需要知道轮子是怎么制造的。在“重复”制造轮子的过程中对知识的掌握,对技术的提升又会一个新的高度,自己写一个框架是对已有框架理解深刻的方式。写一个完整的框架这需要丰富的经验和技术积淀,不是每个人有能力去做的,前提当然是已经会使用已有的框架并知道其大概的实现,并在自己的使用过程中根据实际情况定制自己的框架。
——CSDN网友cauchyweierstrass
架构、框架,其阐述的主要是一种思想,造轮子的思想,至于这个轮子该造成汽车的还是自行车的,根据实际需要选用合适的材料(例如Hibernate、iBatis等),LZ的书也是想通过对架构、框架这么多年的经验积累来讲讲如何去掌握这种思想,探索适合企业、个人的架构方法。
——CSDN网友xiaoyaocao2000
第1章从一个简单的Web应用1
正所谓“工欲善其事,必先利其器”,在正式开始设计并开发我们的轻量级JavaWeb框架之前,有必要首先掌握以下技能:
使用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转为JavaWeb项目5
1.2.2添加JavaWeb的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章搭建轻量级JavaWeb框架66
我们需要这样的框架,它足够轻量级、足够灵巧,不妨给它取一个优雅的名字――SmartFramework,本章我们就一起来实现这个框架。
您将通过本章的学习,掌握如下技能:
如何快速搭建开发框架;
如何加载并读取配置文件;
如何实现一个简单的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.2JDK动态代理114
4.1.3CGlib动态代理116
4.2AOP技术简介118
4.2.1什么是AOP118
4.2.2写死代码119
4.2.3静态代理120
4.2.4JDK动态代理121
4.2.5CGLib动态代理122
4.2.6SpringAOP124
4.2.7Spring+AspectJ136
4.3开发AOP框架142
4.3.1定义切面注解142
4.3.2搭建代理框架143
4.3.3加载AOP框架150
4.4ThreadLocal简介158
4.4.1什么是ThreadLocal158
4.4.2自己实现ThreadLocal161
4.4.3ThreadLocal使用案例163
4.5事务管理简介172
4.5.1什么是事务172
4.5.2事务所面临的问题173
4.5.3Spring的事务传播行为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参数;
如何实现文件上传功能;
如何与ServletAPI完全解耦;
如何实现安全控制框架;
如何实现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与ServletAPI解耦214
5.3.1为何需要与ServletAPI解耦214
5.3.2与ServletAPI解耦的实现过程215
5.4安全控制框架――Shiro219
5.4.1什么是Shiro219
5.4.2HelloShiro220
5.4.3在Web开发中使用Shiro224
5.5提供安全控制特性230
5.5.1为什么需要安全控制230
5.5.2如何使用安全控制框架231
5.5.3如何实现安全控制框架242
5.6Web服务框架――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
附录AMaven快速入门330
附录B将构件发布到Maven中央仓库342









