logo
分类于: 编程语言 计算机基础

简介

企业级Java EE架构设计精深实践

企业级Java EE架构设计精深实践 0.0分

资源最后更新于 2020-03-29 02:07:23

作者:罗果

出版社:出版社清华大学出版社

出版日期:2016-06

ISBN:9787302434702

文件格式: pdf

标签: 计算机 程序设计 软件 JAVA语言

简介· · · · · ·

本书全面、深入介绍了企业级Java EE设计的相关内容,内容涵盖了Java EE架构设计的常见问题。《企业级Java EE架构设计精深实践》每一章讲解一个Java EE领域的具体问题,采用问题背景、需求分析、解决思路、架构设计、实践示例和章节总结的顺序组织内容,旨在通过分析相关领域中的常用框架及存在问题,给出相应的解决方案,提高读者分析和解决问题的能力,并增强其架构设计的能力。《企业级Java EE架构设计精深实践》共13章。内容主要包括虚拟文件系统实践、缓存实践、文件处理框架实践、模板语言实践、数据库访问层实践、数据库扩展实践、服务层实践、流程引擎实践、元数据实践、展现层开发实践、Web扩展实践、Tiny统一界面框架实践和RESTful实践。附录中给出了相关学习资源和配置运行指南。《企业级Java EE架构设计精深实践》语言简洁,思路清晰,示例丰富、完整,适合具有一定Java基础的读者阅读,尤其适合从事企业级Java EE软件架构和设计的人员阅读。罗果,专注于企业级Java EE开发平台领域。涉猎广泛,在模块化、元数据、模板引擎、数据库分区分表、SOA等领域都有深入实践。吃过很多亏,上过很多当,但坚信实践出真知。业余时间热心于开源技术,热衷于技术分享,撰写了大量的技术博客,从问题、原理和实践几个方面深入浅出地讲述知识。在“开源中国社区”开博两年,其博客浏览量已近百万次。所开发的Java EE开源框架Tiny,入驻“开源中国社区”两年以来,获得的Star和Fork数都已双双近千,是开源中国极具活力的开源项目之一。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. 序一
  2. 序二
  3. 序三
  4. 前言
  5. 第1章 虚拟文件系统实践
  6. 1.1 背景介绍
  7. 1.2 什么是VFS
  8. 1.3 VFS对比
  9. 1.3.1 Apache VFS
  10. 1.3.2 Tiny VFS
  11. 1.4 VFS框架设计思想
  12. 1.5 VFS实现讲解
  13. 1.5.1 VFS管理器
  14. 1.5.2 SchemaProvider模式提供者
  15. 1.5.3 FileObject虚拟文件
  16. 1.5.4 FileObjectFilter过滤接口
  17. 1.6 VFS应用示例
  18. 1.6.1 本地文件
  19. 1.6.2 Jar文件
  20. 1.6.3 FTP文件
  21. 1.6.4 ZIP文件
  22. 1.7 本章总结
  23. 第2章 缓存实践
  24. 2.1 缓存简介
  25. 2.1.1 问题的提出及其解决方案分析
  26. 2.1.2 用户需求
  27. 2.1.3 Tiny缓存解决思路
  28. 2.2 字节码缓存设计
  29. 2.2.1 字节码操作工程
  30. 2.2.2 预编译工程
  31. 2.2.3 缓存实现工程
  32. 2.2.4 技术特点
  33. 2.3 动态代理缓存设计
  34. 2.3.1 缓存接口定义
  35. 2.3.2 切面缓存工程
  36. 2.3.3 技术特点
  37. 2.4 缓存方案实践
  38. 2.4.1 字节码方案配置
  39. 2.4.2 字节码方案示例
  40. 2.4.3 动态代理方案配置
  41. 2.4.4 动态代理方案示例
  42. 2.5 本章总结
  43. 2.5.1 关键点:缓存实现方案的可替换性
  44. 2.5.2 关键点:缓存代码与业务代码的解耦
  45. 2.5.3 关键点:模板语言的应用
  46. 第3章 文件处理框架实践
  47. 3.1 概述
  48. 3.1.1 FileProcessor接口
  49. 3.1.2 FileResolver接口
  50. 3.1.3 FileMonitorProcessor类
  51. 3.2 基础文件扫描器
  52. 3.2.1 XStreamFileProcessor类
  53. 3.2.2 I18nFileProcessor类
  54. 3.2.3 Annotation扫描器
  55. 3.2.4 SpringBeansFileProcessor类
  56. 3.3 完整示例
  57. 3.3.1 单独使用
  58. 3.3.2 通过配置文件配置
  59. 3.4 本章总结
  60. 第4章 模板语言实践
  61. 4.1 模板语言简介
  62. 4.1.1 模板语言构成
  63. 4.1.2 模板语言应用场景
  64. 4.2 常见的模板语言
  65. 4.2.1 Velocity模板语言
  66. 4.2.2 FreeMarker模板语言
  67. 4.2.3 Tiny模板语言
  68. 4.3 Tiny模板语言设计
  69. 4.3.1 Tiny模板语言的构建原因
  70. 4.3.2 模板语言执行方式
  71. 4.3.3 模板语言架构
  72. 4.3.4 Tiny模板语言实现与扩展
  73. 4.3.5 模板语言语法解析
  74. 4.3.6 模板语言渲染机制
  75. 4.4 模板语言的使用
  76. 4.4.1 依赖配置
  77. 4.4.2 模板语言的配置
  78. 4.4.3 模板语言的Eclipse插件
  79. 4.4.4 Hello,TinyTemplate
  80. 4.5 模板语言语法介绍
  81. 4.5.1 变量
  82. 4.5.2 取值表达式
  83. 4.5.3 Map常量
  84. 4.5.4 数组常量
  85. 4.5.5 其他表达式
  86. 4.5.6 索引表达式
  87. 4.5.7 #set指令
  88. 4.5.8 条件判断
  89. 4.5.9 ==相等运算
  90. 4.5.10 AND运算
  91. 4.5.11 OR运算
  92. 4.5.12 NOT运算
  93. 4.5.13 循环语句
  94. 4.5.14 循环状态变量
  95. 4.5.15 循环中断:#break
  96. 4.5.16 循环继续:# continue
  97. 4.5.17 while循环
  98. 4.5.18 模板嵌套语句#include
  99. 4.5.19 宏定义语句#macro
  100. 4.5.20 宏引入语句#import
  101. 4.5.21 布局重写语句#layout #@layout
  102. 4.5.22 停止执行#stop
  103. 4.5.23 返回指令#return
  104. 4.5.24 行结束指令
  105. 4.5.25 读取文本资源函数read和readContent
  106. 4.5.26 解析模板parser
  107. 4.5.27 格式化函数fmt、format和formatter
  108. 4.5.28 宏调用方法call和callMacro
  109. 4.5.29 实例判断函数is、instanceOf和instance
  110. 4.5.30 求值函数eval和evaluate
  111. 4.5.31 随机数函数rand和random
  112. 4.5.32 类型转换函数
  113. 4.5.33 日期格式转换formatDate
  114. 4.6 模板语言扩展
  115. 4.6.1 资源加载器的使用
  116. 4.6.2 宏的使用
  117. 4.6.3 函数的使用
  118. 4.6.4 国际化的使用
  119. 4.6.5 静态类和静态方法的使用
  120. 4.6.6 Servlet集成
  121. 4.6.7 SpringMVC集成
  122. 4.7 本章总结
  123. 第5章 数据库访问层实践
  124. 5.1 数据访问层简介
  125. 5.2 常见数据库访问层介绍
  126. 5.2.1 Hibernate简介
  127. 5.2.2 Ibatis简介
  128. 5.2.3 JPA简介
  129. 5.2.4 DSL数据库访问层简介
  130. 5.3 TinyDsl设计方案
  131. 5.3.1 SQL抽象化设计
  132. 5.3.2 DSL风格SQL设计
  133. 5.3.3 SQL执行接口设计
  134. 5.3.4 执行接口实现介绍
  135. 5.4 数据库访问层示例
  136. 5.4.1 工程创建
  137. 5.4.2 准备工作
  138. 5.4.3 Hibernate示例
  139. 5.4.4 Ibatis示例
  140. 5.4.5 JPA示例
  141. 5.4.6 TinyDsl示例
  142. 5.5 本章总结
  143. 第6章 数据库扩展实践
  144. 6.1 数据库扩展简介
  145. 6.2 常见数据库扩展方案
  146. 6.2.1 DAO层
  147. 6.2.2 DataSource层
  148. 6.2.3 JDBC层
  149. 6.2.4 Proxy层
  150. 6.3 读写分离
  151. 6.3.1 读写分离
  152. 6.3.2 负载均衡
  153. 6.3.3 数据同步
  154. 6.4 分库分表
  155. 6.4.1 同库分表
  156. 6.4.2 不同库分表
  157. 6.5 开源方案介绍
  158. 6.5.1 TDDL
  159. 6.5.2 Routing4DB
  160. 6.5.3 TinyDbRouter
  161. 6.5.4 开源方案的对比
  162. 6.6 TinyDbRouter的设计和实现
  163. 6.6.1 设计目标
  164. 6.6.2 设计原理之接入层设计
  165. 6.6.3 设计原理之SQL解析层设计
  166. 6.6.4 设计原理之路由决策层设计
  167. 6.6.5 设计原理之执行层设计
  168. 6.6.6 实现
  169. 6.7 应用实践
  170. 6.7.1 读写分离示例
  171. 6.7.2 分库分表示例
  172. 6.7.3 集群事务示例
  173. 6.7.4 元数据示例
  174. 6.7.5 自定义扩展
  175. 6.7.6 常见FAQ
  176. 6.8 本章总结
  177. 第7章 服务层实践
  178. 7.1 服务层简介
  179. 7.1.1 传统服务层
  180. 7.1.2 Tiny服务层
  181. 7.2 Tiny服务层介绍
  182. 7.2.1 服务声明
  183. 7.2.2 服务注册
  184. 7.2.3 小结
  185. 7.3 本地服务层实践
  186. 7.3.1 服务描述
  187. 7.3.2 服务定义
  188. 7.3.3 服务收集与注册
  189. 7.3.4 服务执行
  190. 7.3.5 小结
  191. 7.4 远程服务实践
  192. 7.4.1 传统的远程服务
  193. 7.4.2 新的远程服务模式
  194. 7.4.3 多服务中心支持
  195. 7.4.4 新的远程服务实现
  196. 7.4.5 小结
  197. 7.5 本地服务调用示例
  198. 7.5.1 非Tiny框架调用示例
  199. 7.5.2 Tiny框架应用调用
  200. 7.6 远程服务配置示例
  201. 7.6.1 非Tiny框架配置示例
  202. 7.6.2 Tiny框架应用配置
  203. 7.7 本章总结
  204. 第8章 流程引擎实践
  205. 8.1 流程引擎简介
  206. 8.1.1 流程引擎的来历
  207. 8.1.2 解决方案
  208. 8.1.3 特性简介
  209. 8.2 流程引擎实现
  210. 8.2.1 流程组件
  211. 8.2.2 流程组件配置
  212. 8.2.3 流程组件管理
  213. 8.2.4 流程配置
  214. 8.2.5 流程管理
  215. 8.2.6 流程执行
  216. 8.3 流程引擎特性
  217. 8.3.1 流程可继承性
  218. 8.3.2 灵活的EL表达式
  219. 8.3.3 流程可重入
  220. 8.3.4 流程可转出
  221. 8.3.5 强大异常处理
  222. 8.4 流程编辑器
  223. 8.4.1 创建流程
  224. 8.4.2 界面说明
  225. 8.4.3 操作说明
  226. 8.5 本章总结
  227. 第9章 元数据实践
  228. 9.1 元数据简介
  229. 9.1.1 问题背景
  230. 9.1.2 解决途径
  231. 9.2 基础元数据设计
  232. 9.2.1 支持语言类型
  233. 9.2.2 标准数据类型
  234. 9.2.3 业务数据类型
  235. 9.2.4 标准字段
  236. 9.3 数据库元数据设计
  237. 9.3.1 表及索引
  238. 9.3.2 视图
  239. 9.4 元数据开发指南
  240. 9.4.1 元数据加载机制
  241. 9.4.2 元数据处理器
  242. 9.5 元数据开发实践
  243. 9.5.1 Eclipse插件
  244. 9.5.2 应用配置
  245. 9.5.3 生成方言模板
  246. 9.5.4 生成标准数据类型
  247. 9.5.5 生成业务数据类型
  248. 9.5.6 生成标准字段
  249. 9.5.7 生成数据库表
  250. 9.5.8 定义元数据
  251. 9.5.9 生成Java代码
  252. 9.5.10 生成SQL
  253. 9.6 本章总结
  254. 第10章 展现层开发实践
  255. 10.1 展示层简介
  256. 10.1.1 Servlet
  257. 10.1.2 JSP
  258. 10.1.3 模板语言
  259. 10.1.4 展示层常见问题
  260. 10.2 展示层方案设计
  261. 10.2.1 UI组件包开发
  262. 10.2.2 资源合并实践
  263. 10.2.3 避免重复代码
  264. 10.2.4 国际化问题
  265. 10.3 前端访问方案实践
  266. 10.3.1 组件包封装
  267. 10.3.2 宏接口定义
  268. 10.3.3 页面和布局编写
  269. 10.3.4 前端参数配置
  270. 10.4 本章总结
  271. 10.4.1 关键点:DRY原则的实现
  272. 10.4.2 关键点:JS文件的合并
  273. 10.4.3 关键点:CSS文件的合并
  274. 第11章 Web扩展实践
  275. 11.1 背景简介
  276. 11.2 监听器设计原理
  277. 11.2.1 应用配置管理
  278. 11.2.2 应用处理器(ApplicationProcessor)
  279. 11.2.3 Web监听器
  280. 11.2.4 监听器配置管理
  281. 11.3 过滤器设计原理
  282. 11.3.1 请求上下文(WebContext)
  283. 11.3.2 TinyFilter介绍
  284. 11.4 处理器设计原理
  285. 11.4.1 过滤器配置(TinyProcessorConfig)
  286. 11.4.2 过滤器配置管理(TinyProcessorConfigManager)
  287. 11.4.3 处理器管理接口(TinyProcessorManager)
  288. 11.5 BasicTinyFilter类
  289. 11.5.1 拦截器接口
  290. 11.5.2 默认拦截器
  291. 11.6 SetLocaleTinyFilter类
  292. 11.6.1 Locale基础
  293. 11.6.2 Charset编码基础
  294. 11.6.3 Locale和charset的关系
  295. 11.6.4 设置locale和charset
  296. 11.6.5 使用方法
  297. 11.7 ParserTinyFilter类
  298. 11.7.1 基本使用方法
  299. 11.7.2 上传文件
  300. 11.7.3 高级选项
  301. 11.8 BufferedTinyFilter类
  302. 11.8.1 实现原理
  303. 11.8.2 使用方法
  304. 11.8.3 关闭buffer机制
  305. 11.9 LazyCommitTinyFilter类
  306. 11.9.1 什么是提交
  307. 11.9.2 实现原理
  308. 11.9.3 使用方法
  309. 11.10 RewriteTinyFilter类
  310. 11.10.1 概述
  311. 11.10.2 取得路径
  312. 11.10.3 匹配rules
  313. 11.10.4 匹配conditions
  314. 11.10.5 替换路径
  315. 11.10.6 替换参数
  316. 11.10.7 后续操作
  317. 11.10.8 重定向
  318. 11.10.9 自定义处理器
  319. 11.11 SessionTinyFilter类
  320. 11.11.1 概述
  321. 11.11.2 Session框架
  322. 11.11.3 Cookie Store
  323. 11.11.4 总结
  324. 11.12 SpringMVCTinyProcessor介绍
  325. 11.12.1 基于扩展协议的内容协商
  326. 11.12.2 约定开发
  327. 11.12.3 扩展协议
  328. 11.13 TinyWeb实践
  329. 11.13.1 准备工作
  330. 11.13.2 使用TinyHttpFilter
  331. 11.13.3 使用TinyProcessor
  332. 11.14 本章总结
  333. 第12章 Tiny统一界面框架实践
  334. 12.1 UIML简介
  335. 12.1.1 问题与需求
  336. 12.1.2 UIML解决方案
  337. 12.1.3 UIML设计思路
  338. 12.1.4 UIML优势
  339. 12.2 UIML开发指南
  340. 12.2.1 框架管理引擎
  341. 12.2.2 组件类型
  342. 12.2.3 组件
  343. 12.2.4 样式列表
  344. 12.2.5 样式
  345. 12.2.6 布局器类型
  346. 12.2.7 布局器
  347. 12.2.8 样式类型列表
  348. 12.2.9 样式类型
  349. 12.2.10 属性类型
  350. 12.2.11 属性
  351. 12.3 UIML使用实践
  352. 12.3.1 UIML的配置
  353. 12.3.2 图形编辑器
  354. 12.3.3 样式简单示例
  355. 12.3.4 开发流程示例
  356. 12.4 常见FAQ
  357. 12.4.1 请问UIML开发必须区别三类角色吗?
  358. 12.4.2 请问UIML开发需要了解哪些新的概念?
  359. 12.4.3 请问UIML开发支持Spring等常用框架吗?
  360. 12.4.4 请问UIML支持哪些平台?
  361. 12.4.5 请问可以修改引用组件的属性吗?
  362. 12.4.6 请问设计组件必须指定平台属性吗?
  363. 12.5 本章总结
  364. 第13章 RESTful实践
  365. 13.1 RESTful简介
  366. 13.2 Spring RESTful实践
  367. 13.2.1 Spring RESTful简介
  368. 13.2.2 使用注解配置URL映射
  369. 13.3 Tiny RESTful风格实践
  370. 13.3.1 URL映射功能
  371. 13.3.2 URL映射管理功能
  372. 13.3.3 URL重写
  373. 13.4 Tiny RESTful实践
  374. 13.4.1 环境准备
  375. 13.4.2 开发用户增删改查应用
  376. 13.4.3 支持RESTful风格
  377. 13.5 本章总结
  378. 附录A 相关资源
  379. A.1 复用第三方库列表
  380. A.2 借鉴第三方开源框架列表
  381. A.3 示例工程简介
  382. A.4 支持我们
  383. A.5 学习Tiny框架的相关资源
  384. 附录B 配置运行指南
  385. B.1 环境配置
  386. B.1.1 配置Java
  387. B.1.2 配置Maven
  388. B.1.3 配置IDE- Eclipse
  389. B.2 mvn编译工程
  390. B.3 Eclipse或IDEA运行工程
  391. B.3.1 Eclipse
  392. B.3.2 IDEA