资源名称:Java EE 设计模式解析与应用

内容简介:

用Java EE设计模式解决实际问题

模式是Java开发者必需的设计工具。虽然Java EE提供了许多“经典GoF模式”的默认实现,但大多数富有经验的开发者都低估了这些开箱即用的实现的价值。《Java EE设计模式解析与应用》一书分析每种模式的意图,并通过各种可供选择的示例代码演示其实现,从而帮助广大开发者改进代码质量并提升架构设计水平。

本书首先呈现最常见的GoF模式,接着循序渐进地讲解新模式;将重温这些模式的经典实现并在示例代码的引导下透彻分析Java EE特定的实现方式。为紧贴实际讲解这些模式,作者还讲述了自己亲历的成功和失败项目,这些经历有些十分有趣,有些令人沮丧,但都很好地阐释了在实际中如何灵活运用这些原理。

主要内容

◆     学习Java EE如何通过注解以及比J2EE更整洁的编程模型提供诸多模式的实现

◆     用Java EE实现重要模式,包括门面、单例、工厂、装饰、观察者、依赖注入以及针对Web应用的MVC模式

◆     掌握Java EE编码方法,包括面向方面编程、异步编程以及REST风格的Web Service

◆     学习模式运用不当的后果以及如何避免常见陷阱

◆     学习避用模式的时机和原因,并给出替代方案

资源目录:

第Ⅰ部分  Java EE设计模式介绍

第1章  设计模式概览 3

1.1  何为设计模式 4

1.1.1  如何检测模式,为何需要模式 6

1.1.2  现实世界中的模式 6

1.2  设计模式基础 8

1.3  企业模式 8

1.3.1  从Java到企业级Java 9

1.3.2  企业Java模式的出现 10

1.3.3  设计模式与企业模式 11

1.3.4  当传统设计模式遇到Java EE 12

1.3.5  当模式变成反模式 13

1.4  小结 14

1.5  相关资料 14

第2章  Java EE基础 17

2.1  多层架构 19

2.2  客户端层 20

2.3  中间层 21

2.3.1  Web层 21

2.3.2  业务层 22

2.4  EIS层 23

2.5  Java EE服务器 24

2.6  Java EE Web Profile 25

2.7  Java EE核心原则 25

2.8  约定优于配置 26

2.9  上下文与依赖注入 26

2.10  拦截器 28

2.11  小结 30

2.12  本章练习 30

第Ⅱ部分  实现Java EE设计模式

第3章  门面模式 33

3.1  何为门面 34

3.2  使用普通代码实现门面模式 36

3.3  使用Java EE实现门面模式 38

3.3.1  使用无状态Bean实现门面 38

3.3.2  使用有状态Bean实现门面 41

3.4  何时以及何处该使用门面模式 42

3.5  小结 43

3.6  本章练习 43

3.7  相关资料 43

第4章  单例模式 45

4.1  何为单例? 46

4.1.1  单例模式类图 47

4.1.2  使用普通代码实现单例模式 48

4.2  使用Java EE实现单例模式 53

4.2.1  单例Bean 53

4.2.2  在启动时使用单例 54

4.2.3  确定启动顺序 56

4.2.4  管理并发 59

4.3  何处以及何时该使用单例模式 63

4.4  小结 63

4.5  本章练习 64

4.6  相关资料 65

第5章  依赖注入与CDI 67

5.1  何为依赖注入? 68

5.2  使用普通代码实现DI 69

5.3  使用Java EE实现DI 73

5.3.1  @Named注解 75

5.3.2  上下文与依赖注入(CDI) 76

5.3.3  CDI与EJB 77

5.3.4  CDI Bean 77

5.3.5  @Inject注解 79

5.3.6  上下文与作用域 79

5.3.7  命名与EL 80

5.3.8  用于Backing JSF的CDI Bean 81

5.3.9  限定符 81

5.3.10  Alternatives 82

5.3.11  Stereotypes 83

5.3.12  通过CDI实现的其他模式 84

5.4  小结 84

5.5  本章练习 85

5.6  相关资料 85

第6章  工厂模式 87

6.1  何为工厂? 88

6.2  工厂方法 89

6.3  抽象工厂 94

6.4  使用Java EE实现工厂模式 96

6.5  何处以及何时该使用工厂模式 110

6.6  小结 111

6.7  本章练习 111

6.8  相关资料 111

第7章  装饰模式 113

7.1  何为装饰器? 114

7.2  使用普通代码实现装饰模式 116

7.3  使用Java EE实现装饰模式 121

7.4  何处以及何时该使用装饰模式 129

7.5  小结 130

7.6  本章练习 130

7.7  相关资料 131

第8章  面向方面编程(拦截器) 133

8.1  何为面向方面编程? 134

8.2  使用普通代码实现AOP 137

8.3  Java EE中的方面—— 拦截器 140

8.3.1  拦截器生命周期 145

8.3.2  默认级别的拦截器 146

8.3.3  拦截器顺序 147

8.3.4  CDI拦截器 150

8.4  何处以及何时该使用拦截器 153

8.5  小结 154

8.6  相关资料 155

第9章  异步 157

9.1  何为异步编程 158

9.2  使用普通代码实现异步模式 161

9.3  Java EE中的异步编程 164

9.3.1  异步Bean 164

9.3.2  异步Servlet 167

9.4  何处以及何时该使用异步编程 172

9.5  小结 174

9.6  本章练习 174

9.7  相关资料 175

第10章  定时器服务 177

10.1  何为定时器服务 178

10.2  使用Java EE实现定时器 181

10.2.1  自动化定时器 181

10.2.2  编程式定时器 183

10.2.3  定时器表达式 187

10.2.4  事务 190

10.3  小结 191

10.4  本章练习 192

10.5  相关资料 192

第11章  观察者模式 193

11.1  何为观察者? 194

11.1.1  说明 195

11.1.2  观察者类图 197

11.2  使用普通代码实现观察者模式 197

11.3  使用Java EE实现观察者模式 200

11.4  何处以及何时该使用观察者模式 209

11.5  小结 210

11.6  本章练习 211

11.7  相关资料 211

第12章  数据访问模式 213

12.1  何为数据访问模式? 214

12.2  数据访问模式概览 216

12.2.1  数据传输对象模式 216

12.2.2  Java持久化架构API与对象关系映射 217

12.3  使用Java EE实现数据访问模式 218

12.4  何处以及何时该使用数据访问模式 227

12.5  小结 227

12.6  本章练习 228

12.7  相关资料 228

第13章  REST风格的Web Service 229

13.1  何为REST? 230

13.2  REST的6个约束 232

13.2.1  客户端-服务器 233

13.2.2  统一接口 233

13.2.3  无状态 233

13.2.4  可缓存 233

13.2.5  分层系统 234

13.2.6  按需编码 234

13.3  REST API的理查森能力成熟度模型 234

13.3.1  级别0:POX(Plain Old XML)沼泽 235

13.3.2  级别1:资源 235

13.3.3  级别2:HTTP动词 235

13.3.4  级别3:超媒体控件 235

13.4  设计REST风格的API 235

13.4.1  资源命名 236

13.4.2  名词而非动词 237

13.4.3  自说明 237

13.4.4  复数而非单数 237

13.4.5  HTTP方法 238

13.4.6  GET 238

13.4.7  POST 239

13.4.8  PUT 239

13.4.9  DELETE 240

13.5  REST实战 240

13.5.1  users名词 240

13.5.2  topics名词与posts名词 242

13.6  使用Java EE实现REST 244

13.7  HATEOAS 249

13.8  何处以及何时该使用REST 253

13.9  小结 253

13.10  本章练习 254

13.11  相关资料 254

第14章  模型、视图与控制器模式 255

14.1  何为MVC设计模式? 256

14.2  使用普通代码实现MVC模式 260

14.3  使用Java EE实现MVC模式 265

14.4  FacesServlet 265

14.5  使用FacesServlet实现MVC 266

14.6  何处以及何时该使用MVC模式 269

14.7  小结 269

14.8  本章练习 270

14.9  相关资料 270

第15章  Java EE中的其他模式 271

15.1  何为WebSockets? 272

15.2  何为面向消息的中间件 275

15.3  何为微服务架构? 277

15.3.1  单块架构 278

15.3.2  可伸缩性 279

15.3.3  分解为服务 280

15.3.4  微服务的好处 281

15.3.5  天下没有免费的午餐 282

15.3.6  结论 283

15.4  一些反模式 284

15.4.1  超级类 284

15.4.2  面条架构 284

15.4.3  哥伦布先生 285

15.4.4  利益之交 285

15.4.5  前沿技术 286

15.4.6  辅助类 286

15.5  相关资料 287

第Ⅲ部分  总    结

第16章  设计模式:好处、坏处与丑陋之处 291

16.1  好处:通往成功之路的模式 292

16.2  坏处:模式的过度使用与滥用 294

16.3  丑陋之处 296

16.4  小结 298

16.5  相关资料 298

资源截图:

java ee 设计模式解析与应用_Java EE 设计模式解析与应用_IT教程网相关推荐

  1. 李兴华java视频在线观看_李兴华Java开发实战经典视频教程_IT教程网

    资源名称:李兴华Java开发实战经典视频教程 资源目录: [IT教程网]010201_[第2章:简单Java程序]_简单Java程序 [IT教程网]010301_[第3章:Java基础程序设计]_Ja ...

  2. java全能速查宝典_Java全能速查宝典_IT教程网

    资源名称:Java全能速查宝典 内容简介: Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际问题的一般方法.<Java全能速查宝典>从Java SE及Java E ...

  3. java 解析csv 乱码_Java采用opencsv解析csv文件以及解析中文乱码问题

    参考资料: opencsv文档 写下本文时最新版的opencsv版本为4.0, maven坐标如下: com.opencsv opencsv 4.0 测试用test.csv id,date,name ...

  4. java 仅有类名 构造类_java – 这个设计模式有名字吗? (具有仅调用构造函数的实现的基类)...

    编辑:我意识到这种模式很像 currying,这是一种功能程序员在调用之前用来指定函数参数的技术.这里的区别在于我们在对象上讨论构造函数而不是简单地使用函数. 在整个几个项目中,我发现自己使用了这个奇 ...

  5. java漂亮的模板设计代码_JAVA模板方法设计模式——Java设计模式,写漂亮的代码——...

    Java设计模式,写漂亮的代码 ----模板方法设计模式 简介: 模板方法设计模式是Java设计模式中很简单.应用非常广泛的的一种设计模式,该模式体现了编程的抽象思想(抽象是所有子类的共性封装), 仅 ...

  6. java jdom解析xml文件_Java 使用JDOM解析XML文档

    使用JDOM解析XML文档 JDOM是一种使用 XML(标准通用标记语言下的一个子集) 的独特 Java 工具包.下面我们来看一下怎么使用 JDOM来解析XML文档. 首先下载JDOM的jar包,并导 ...

  7. java程序设计题解与上机指导_Java程序设计习题解析与上机指导

    第一部分 习题与解析 第1章 Java语言概述 1.1 知识点回顾 1.2 典型题分析 结束语 结合练习一 一.选择题 二.填空题 三.判断题 四.程序设计题 第2章 Java语言基础 2.1 知识点 ...

  8. java中gso是什么意思_Java中用Gson解析json字符串

    本文最后更新于2019年9月13日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! =Start= 缘由: 因为阿里开源的fastjson前段时间爆出的漏洞实在是太多了(而且有些漏洞他 ...

  9. java base64转图片并保存_java将base64解析图片保存到本地。

    将base64解析图片保存到本地的两个方法 /** * base64转图片 * @param base64str base64码 * @param savePath 图片路径 * @return */ ...

  10. java 解析pdf表格_java – 使用PDFBox解析PDF文件(特别是使用表格)

    我需要解析一个包含表格数据的PDF文件.我使用 PDFBox提取文件文本来解析结果(字符串)稍后.问题是文本提取不能像我预期的表格数据那样工作.例如,我有一个文件,其中包含这样的表(7列:前两个总是有 ...

最新文章

  1. 基于RT106x电磁智能车AI算法
  2. 中文预训练模型ZEN开源,效果领域内最佳,创新工场港科大出品
  3. key位置 win10生成的ssh_华为路由器配置SSH远程登录,就这么简单
  4. MyEclipse8.x下安装freemarker ide插件
  5. 机器学习笔试面试超详细总结(一)
  6. $.ajax()参数详解及标准写法
  7. linux如何将文件夹添加到书签,桌面应用|[新手技巧] 如何在Ubuntu中添加和删除书签...
  8. InDesign 软件教程,如何在 InDesign 中缩放和平移文档?
  9. Linux acpi off学习的必要
  10. u盘被隐藏的文件怎么恢复
  11. 我们怎么样把pdf格式转换成dwg格式呢
  12. 如何将 MPG 转换为 MP4
  13. Spring Boot使用EasyExcel导入导出Excel
  14. React ,Redux 教程汇总
  15. 使用docker搭建xss挑战之旅环境,操作步骤配截图。
  16. Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build-*解决办法
  17. 微信小程序 消息订阅 长期订阅 一次授权 多次接收 微信服务通知
  18. 线刷MiFlash没有反映,找不到设备
  19. linux oom日志分析,oom killer理解和日志分析:知识储备
  20. 解决Windows提示缺少msxml6r.dll文件的问题

热门文章

  1. MySQL 时间函数
  2. java伪代码生成器_java伪代码怎么写
  3. 用C++编写的小游戏源代码
  4. 在线SAS统计分析软件使用简介(2019年最新修订)
  5. linux系统虚拟机gcc下载,Linux(Ubuntu)虚拟机安装GCC编译器
  6. 小米菲的Tableau学习日记01:Tableau学习资料、安装及学生版申请
  7. STM32电机库(ST-MC-Workbench)学习记录——电流采样参数设置
  8. OpenGL超级宝典(第7版)之VS2019使用sb7框架搭建自己的程序
  9. 万年历单片机课程设计百度文库_单片机课程设计-万年历
  10. 千入坑坑之安装matlab,114错误,几种系统报错解决