当前位置:首页 > 工业技术
企业级JavaEE架构设计精深实践
企业级JavaEE架构设计精深实践

企业级JavaEE架构设计精深实践PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:罗果著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302434702
  • 页数:500 页
图书介绍:企业级J2EE架构实践是一本实践性非常强的图书,是作者多年来构建J2EE开发框架实践过程中的宝贵经验汇集而成。本书的重点不是对现有的一些开源框架进行细致全面的介绍,相关的开源的一些方案可能会涉及到,但是重点是笔者在构建J2EE框架中对企业级J2EE框架中的实践过程进行详细的讲述,有相当多的实践具有反模式的待质,也就是说与常见解法不一样,再加上简单的示例,可以让阅读者非常容易的理解其设计精要,且有脑洞大开之感觉。
《企业级JavaEE架构设计精深实践》目录

第1章 虚拟文件系统实践 1

1.1 背景介绍 1

1.2 什么是VFS 1

1.3 VFS对比 2

1.3.1 Apache VFS 2

1.3.2 Tiny VFS 2

1.4 VFS框架设计思想 3

1.5 VFS实现讲解 5

1.5.1 VFS管理器 5

1.5.2 SchemaProvider模式提供者 7

1.5.3 FileObject虚拟文件 7

1.5.4 FileObjectFilter过滤接口 10

1.6 VFS应用示例 12

1.6.1 本地文件 13

1.6.2 Jar文件 13

1.6.3 FTP文件 14

1.6.4 ZIP文件 14

1.7 本章总结 15

第2章 缓存实践 16

2.1 缓存简介 16

2.1.1 问题的提出及其解决方案分析 16

2.1.2 用户需求 19

2.1.3 Tiny缓存解决思路 19

2.2 字节码缓存设计 23

2.2.1 字节码操作工程 23

2.2.2 预编译工程 27

2.2.3 缓存实现工程 28

2.2.4 技术特点 31

2.3 动态代理缓存设计 31

2.3.1 缓存接口定义 32

2.3.2 切面缓存工程 33

2.3.3 技术特点 43

2.4 缓存方案实践 43

2.4.1 字节码方案配置 43

2.4.2 字节码方案示例 44

2.4.3 动态代理方案配置 46

2.4.4 动态代理方案示例 48

2.5 本章总结 54

2.5.1 关键点:缓存实现方案的可替换性 54

2.5.2 关键点:缓存代码与业务代码的解耦 54

2.5.3 关键点:模板语言的应用 55

第3章 文件处理框架实践 56

3.1 概述 56

3.1.1 FileProcessor接口 56

3.1.2 FileResolver接口 58

3.1.3 FileMonitorProcessor类 60

3.2 基础文件扫描器 60

3.2.1 XStreamFileProcessor类 61

3.2.2 I18nFileProcessor类 63

3.2.3 Annotation扫描器 63

3.2.4 SpringBeansFileProcessor类 65

3.3 完整示例 66

3.3.1 单独使用 66

3.3.2 通过配置文件配置 66

3.4 本章总结 67

第4章 模板语言实践 69

4.1 模板语言简介 69

4.1.1 模板语言构成 69

4.1.2 模板语言应用场景 70

4.2 常见的模板语言 71

4.2.1 Velocity模板语言 71

4.2.2 FreeMarker模板语言 71

4.2.3 Tiny模板语言 72

4.3 Tiny模板语言设计 73

4.3.1 Tiny模板语言的构建原因 73

4.3.2 模板语言执行方式 73

4.3.3 模板语言架构 73

4.3.4 Tiny模板语言实现与扩展 74

4.3.5 模板语言语法解析 88

4.3.6 模板语言渲染机制 94

4.4 模板语言的使用 99

4.4.1 依赖配置 99

4.4.2 模板语言的配置 99

4.4.3 模板语言的Eclipse插件 101

4.4.4 Hello,TinyTemplate 104

4.5 模板语言语法介绍 105

4.5.1 变量 106

4.5.2 取值表达式 107

4.5.3 Map常量 107

4.5.4 数组常量 108

4.5.5 其他表达式 109

4.5.6 索引表达式 111

4.5.7 #set指令 111

4.5.8 条件判断 112

4.5.9 ==相等运算 113

4.5.10 AND运算 114

4.5.11 OR运算 114

4.5.12 NOT运算 114

4.5.13 循环语句 114

4.5.14 循环状态变量 116

4.5.15 循环中断:#break 116

4.5.16 循环继续:#continue 117

4.5.17 while循环 117

4.5.18 模板嵌套语句#include 117

4.5.19 宏定义语句#macro 118

4.5.20 宏引入语句#import 120

4.5.21 布局重写语句#layout#@layout 120

4.5.22 停止执行#stop 122

4.5.23 返回指令#return 122

4.5.24 行结束指令 123

4.5.25 读取文本资源函数read和readContent 123

4.5.26 解析模板parser 123

4.5.27 格式化函数fmt、format和formatter 123

4.5.28 宏调用方法call和callMacro 124

4.5.29 实例判断函数is、instanceOf和instance 124

4.5.30 求值函数eval和evaluate 124

4.5.31 随机数函数rand和random 125

4.5.32 类型转换函数 125

4.5.33 日期格式转换formatDate 126

4.6 模板语言扩展 126

4.6.1 资源加载器的使用 126

4.6.2 宏的使用 127

4.6.3 函数的使用 128

4.6.4 国际化的使用 129

4.6.5 静态类和静态方法的使用 130

4.6.6 Servlet集成 130

4.6.7 SpringMVC集成 132

4.7 本章总结 133

第5章 数据库访问层实践 135

5.1 数据访问层简介 135

5.2 常见数据库访问层介绍 136

5.2.1 Hibernate简介 136

5.2.2 Ibatis简介 138

5.2.3 JPA简介 140

5.2.4 DSL数据库访问层简介 141

5.3 TinyDsl设计方案 143

5.3.1 SQL抽象化设计 143

5.3.2 DSL风格SQL设计 149

5.3.3 SQL执行接口设计 153

5.3.4 执行接口实现介绍 155

5.4 数据库访问层示例 163

5.4.1 工程创建 163

5.4.2 准备工作 167

5.4.3 Hibernate示例 170

5.4.4 Ibatis示例 173

5.4.5 JPA示例 176

5.4.6 TinyDsl示例 180

5.5 本章总结 182

第6章 数据库扩展实践 184

6.1 数据库扩展简介 184

6.2 常见数据库扩展方案 184

6.2.1 DAO层 185

6.2.2 DataSource层 186

6.2.3 JDBC层 186

6.2.4 Proxy层 188

6.3 读写分离 189

6.3.1 读写分离 189

6.3.2 负载均衡 191

6.3.3 数据同步 192

6.4 分库分表 193

6.4.1 同库分表 193

6.4.2 不同库分表 193

6.5 开源方案介绍 194

6.5.1 TDDL 194

6.5.2 Routing4DB 195

6.5.3 TinyDbRouter 195

6.5.4 开源方案的对比 195

6.6 TinyDbRouter的设计和实现 197

6.6.1 设计目标 197

6.6.2 设计原理之接入层设计 197

6.6.3 设计原理之SQL解析层设计 203

6.6.4 设计原理之路由决策层设计 204

6.6.5 设计原理之执行层设计 208

6.6.6 实现 211

6.7 应用实践 214

6.7.1 读写分离示例 215

6.7.2 分库分表示例 217

6.7.3 集群事务示例 219

6.7.4 元数据示例 222

6.7.5 自定义扩展 223

6.7.6 常见FAQ 224

6.8 本章总结 225

第7章 服务层实践 227

7.1 服务层简介 227

7.1.1 传统服务层 227

7.1.2 Tiny服务层 227

7.2 Tiny服务层介绍 228

7.2.1 服务声明 229

7.2.2 服务注册 230

7.2.3 小结 231

7.3 本地服务层实践 232

7.3.1 服务描述 232

7.3.2 服务定义 235

7.3.3 服务收集与注册 235

7.3.4 服务执行 236

7.3.5 小结 238

7.4 远程服务实践 240

7.4.1 传统的远程服务 240

7.4.2 新的远程服务模式 240

7.4.3 多服务中心支持 242

7.4.4 新的远程服务实现 244

7.4.5 小结 247

7.5 本地服务调用示例 248

7.5.1 非Tiny框架调用示例 248

7.5.2 Tiny框架应用调用 251

7.6 远程服务配置示例 253

7.6.1 非Tiny框架配置示例 253

7.6.2 Tiny框架应用配置 257

7.7 本章总结 260

第8章 流程引擎实践 261

8.1 流程引擎简介 261

8.1.1 流程引擎的来历 261

8.1.2 解决方案 262

8.1.3 特性简介 262

8.2 流程引擎实现 263

8.2.1 流程组件 263

8.2.2 流程组件配置 265

8.2.3 流程组件管理 266

8.2.4 流程配置 266

8.2.5 流程管理 269

8.2.6 流程执行 270

8.3 流程引擎特性 271

8.3.1 流程可继承性 271

8.3.2 灵活的EL表达式 273

8.3.3 流程可重入 275

8.3.4 流程可转出 275

8.3.5 强大异常处理 276

8.4 流程编辑器 278

8.4.1 创建流程 278

8.4.2 界面说明 278

8.4.3 操作说明 279

8.5 本章总结 281

第9章 元数据实践 282

9.1 元数据简介 282

9.1.1 问题背景 283

9.1.2 解决途径 283

9.2 基础元数据设计 284

9.2.1 支持语言类型 284

9.2.2 标准数据类型 286

9.2.3 业务数据类型 287

9.2.4 标准字段 287

9.3 数据库元数据设计 288

9.3.1 表及索引 288

9.3.2 视图 289

9.4 元数据开发指南 289

9.4.1 元数据加载机制 289

9.4.2 元数据处理器 299

9.5 元数据开发实践 311

9.5.1 Eclipse插件 312

9.5.2 应用配置 312

9.5.3 生成方言模板 315

9.5.4 生成标准数据类型 316

9.5.5 生成业务数据类型 319

9.5.6 生成标准字段 323

9.5.7 生成数据库表 326

9.5.8 定义元数据 329

9.5.9 生成Java代码 332

9.5.10 生成SQL 340

9.6 本章总结 342

第10章 展现层开发实践 344

10.1 展示层简介 344

10.1.1 Servlet 344

10.1.2 JSP 345

10.1.3 模板语言 345

10.1.4 展示层常见问题 346

10.2 展示层方案设计 347

10.2.1 UI组件包开发 348

10.2.2 资源合并实践 351

10.2.3 避免重复代码 356

10.2.4 国际化问题 356

10.3 前端访问方案实践 356

10.3.1 组件包封装 357

10.3.2 宏接口定义 359

10.3.3 页面和布局编写 363

10.3.4 前端参数配置 367

10.4 本章总结 369

10.4.1 关键点:DRY原则的实现 369

10.4.2 关键点:JS文件的合并 369

10.4.3 关键点:CSS文件的合并 369

第11章 Web扩展实践 371

11.1 背景简介 371

11.2 监听器设计原理 372

11.2.1 应用配置管理 374

11.2.2 应用处理器(ApplicationProcessor) 375

11.2.3 Web监听器 379

11.2.4 监听器配置管理 383

11.3 过滤器设计原理 385

11.3.1 请求上下文(WebContext) 386

11.3.2 TinyFilter介绍 387

11.4 处理器设计原理 394

11.4.1 过滤器配置(TinyProcessorConfig) 394

11.4.2 过滤器配置管理(TinyProcessorConfigManager) 396

11.4.3 处理器管理接口(TinyProcessorManager) 396

11.5 BasicTinyFilter类 398

11.5.1 拦截器接口 398

11.5.2 默认拦截器 399

11.6 SetLocaleTinyFilter类 399

11.6.1 Locale基础 400

11.6.2 Charset编码基础 400

11.6.3 Locale和charset的关系 401

11.6.4 设置locale和charset 402

11.6.5 使用方法 403

11.7 ParserTinyFilter类 404

11.7.1 基本使用方法 404

11.7.2 上传文件 407

11.7.3 高级选项 409

11.8 BufferedTinyFilter类 412

11.8.1 实现原理 412

11.8.2 使用方法 414

11.8.3 关闭buffer机制 414

11.9 LazyCommitTinyFilter类 414

11.9.1 什么是提交 415

11.9.2 实现原理 415

11.9.3 使用方法 415

11.10 RewriteTinyFilter类 416

11.10.1 概述 416

11.10.2 取得路径 418

11.10.3 匹配rules 418

11.10.4 匹配conditions 418

11.10.5 替换路径 420

11.10.6 替换参数 420

11.10.7 后续操作 421

11.10.8 重定向 422

11.10.9 自定义处理器 423

11.11 SessionTinyFilter类 423

11.11.1 概述 423

11.11.2 Session框架 426

11.11.3 Cookie Store 431

11.11.4 总结 435

11.12 SpringMVCTinyProcessor介绍 435

11.12.1 基于扩展协议的内容协商 436

11.12.2 约定开发 436

11.12.3 扩展协议 438

11.13 TinyWeb实践 439

11.13.1 准备工作 439

11.13.2 使用TinyHttpFilter 440

11.13.3 使用TinyProcessor 441

11.14 本章总结 442

第12章 Tiny统一界面框架实践 444

12.1 UIML简介 444

12.1.1 问题与需求 444

12.1.2 UIML解决方案 445

12.1.3 UIML设计思路 446

12.1.4 UIML优势 447

12.2 UIML开发指南 448

12.2.1 框架管理引擎 448

12.2.2 组件类型 450

12.2.3 组件 451

12.2.4 样式列表 452

12.2.5 样式 452

12.2.6 布局器类型 453

12.2.7 布局器 453

12.2.8 样式类型列表 453

12.2.9 样式类型 453

12.2.10 属性类型 453

12.2.11 属性 454

12.3 UIML使用实践 454

12.3.1 UIML的配置 454

12.3.2 图形编辑器 455

12.3.3 样式简单示例 457

12.3.4 开发流程示例 459

12.4 常见FAQ 460

12.4.1 请问UIML开发必须区别三类角色吗? 460

12.4.2 请问UIML开发需要了解哪些新的概念? 461

12.4.3 请问UIML开发支持Spring等常用框架吗? 461

12.4.4 请问UIML支持哪些平台? 461

12.4.5 请问可以修改引用组件的属性吗? 461

12.4.6 请问设计组件必须指定平台属性吗? 461

12.5 本章总结 461

第13章 RESTful实践 463

13.1 RESTful简介 463

13.2 Spring RESTful实践 464

13.2.1 Spring RESTful简介 464

13.2.2 使用注解配置URL映射 465

13.3 Tiny RESTful风格实践 468

13.3.1 URL映射功能 468

13.3.2 URL映射管理功能 470

13.3.3 URL重写 474

13.4 Tiny RESTful实践 476

13.4.1 环境准备 476

13.4.2 开发用户增删改查应用 476

13.4.3 支持RESTful风格 481

13.5 本章总结 483

附录A 相关资源 484

A.1 复用第三方库列表 484

A.2 借鉴第三方开源框架列表 485

A.3 示例工程简介 486

A.4 支持我们 486

A.5 学习Tiny框架的相关资源 487

附录B 配置运行指南 488

B.1 环境配置 488

B.1.1 配置Java 488

B.1.2 配置Maven 489

B.1.3 配置IDE-Eclipse 490

B.2 mvn编译工程 495

B.3 Eclipse或IDEA运行工程 497

B.3.1 Eclipse 497

B.3.2 IDEA 499

返回顶部