具体描述
作者简介
Mert Caliskan是一位荣膺Oracle Java Champion头衔的首席架构师,目前居住在土耳其安卡拉。Mert投身于软件开发领域的时间已有十多年,重点研究企业级Web应用程序的架构设计。
Kenan Sevindik是一位Sun认证的Java J2EE业务和Web组件开发人员,从事Java开发的时间已超过15年。Kenan拥有丰富的主流企业级Java框架经验,经常在技术会议上发表有关各种Java概念的演讲。
目录信息
第1章 POJO编程模型、轻量级容器和控制反转 1
1.1 POJO编程模型 2
1.1.1 原来的EJB编程模型所存在的问题 2
1.1.2 POJO编程模型的优点 7
1.2 轻量级容器和控制反转 8
1.2.1 轻量级容器 8
1.2.2 控制反转 9
1.3 依赖注入 10
1.3.1 Setter注入 11
1.3.2 构造函数注入 11
1.3.3 Setter注入或构造函数注入 11
1.4 小结 12
1.5 习题 12
1.6 本章主要知识点 12
第2章 使用Spring进行依赖注入 15
2.1 Spring IoC容器 16
2.1.1 配置元数据 16
2.1.2 配置和使用容器 18
2.2 依赖注入 28
2.2.1 Setter注入 28
2.2.2 构造函数注入 29
2.2.3 循环依赖 32
2.2.4 依赖解析过程 33
2.2.5 重写Bean定义 34
2.2.6 使用depends-on特性 36
2.2.7 自动装配 37
2.2.8 Bean查找 41
2.3 Spring管理的Bean 42
2.3.1 命名Bean 42
2.3.2 Bean实例化方法 43
2.3.3 Bean作用域 46
2.3.4 延迟初始化 49
2.3.5 生命周期回调 50
2.3.6 Bean定义配置文件 52
2.3.7 环境 54
2.4 小结 57
2.5 习题 58
2.6 本章主要知识点 58
第3章 使用Spring MVC构建 Web应用程序 61
3.1 学习Spring MVC的功能和优点 62
3.2 使用Dispatcher Servlet机制 63
3.2.1 定义Servlet 64
3.2.2 访问Servlet上下文 65
3.3 创建第一个Spring MVC应用程序 65
3.4 使用注解配置Spring MVC 69
3.5 使用JSP处理表单 70
3.5.1 配置表单标签库 71
3.5.2 理解绑定的强大功能 72
3.5.3 使用表单 72
3.5.4 使用输入元素 73
3.5.5 输入日期 74
3.5.6 使用下拉框进行选择 74
3.5.7 使用单选按钮进行选择 75
3.5.8 使用复选框进行选择 76
3.5.9 添加标签 76
3.5.10 放置按钮 76
3.5.11 样式 76
3.6 使用注解的强大功能 81
3.6.1 @Controller 82
3.6.2 @RequestMapping 82
3.6.3 @ModeAttribute 82
3.6.4 @PathVariable 82
3.6.5 @ControllerAdvice 83
3.6.6 @InitBinder 83
3.6.7 @ExceptionHandler 83
3.7 验证用户输入 83
3.8 上传文件 88
3.9 处理异常 91
3.10 实现国际化(i18n) 92
3.11 使用主题 94
3.12 小结 97
3.13 习题 97
3.14 本章主要知识点 98
第4章 使用Spring进行JDBC数据访问 101
4.1 使用普通JDBC所带来的问题 102
4.2 引入Spring的JDBC支持 103
4.2.1 管理JDBC连接 103
4.2.2 配置和使用Spring的JDBC支持 109
4.3 使用Spring执行数据访问操作 112
4.3.1 执行查询 112
4.3.2 使用命名参数进行查询 115
4.3.3 使用In子句编写查询 116
4.3.4 在JdbcTemplate中使用PreparedStatements 117
4.3.5 插入、更新和删除记录 119
4.3.6 调用存储过程和存储函数 122
4.3.7 执行批处理操作 124
4.3.8 处理BLOB和CLOB对象 124
4.3.9 访问特定于供应商的 JDBC 方法 125
4.3.10 执行DDL操作 125
4.4 将JDBC操作模块化为Java对象 126
4.4.1 封装SQL查询执行 126
4.4.2 封装SQL DML操作 128
4.4.3 封装存储过程执行 129
4.5 异常处理和错误代码转换 130
4.5.1 常见的数据访问异常层次结构 130
4.5.2 SQLException的自动处理和转换 131
4.6 小结 131
4.7 习题 132
4.8 本章主要知识点 132
第5章 通过Spring使用JPA进行数据访问 135
5.1 概述ORM和JPA 136
5.1.1 范式不匹配 136
5.1.2 ORM框架的构建块 137
5.1.3 JPA所提供的功能 137
5.1.4 将对象模型映射到关系模型 137
5.1.5 将Java类型映射到SQL类型 142
5.1.6 配置和使用JPA 144
5.2 Spring的JPA支持 153
5.2.1 在Spring容器中设置JPA 153
5.2.2 基于纯JPA实现DAO 158
5.2.3 处理和转换异常 163
5.2.4 在Spring环境中进一步配置JPA 165
5.3 小结 168
5.4 习题 169
5.5 本章主要知识点 169
第6章 使用Spring管理事务 171
6.1 理解事务管理 172
6.2 Spring的事务抽象模型 175
6.2.1 本地事务与全局事务 177
6.2.2 PlatformTransaction Manager实现 178
6.2.3 Spring的抽象事务模型的优点 178
6.3 使用Spring进行声明式事务管理 179
6.3.1 将服务层与数据访问技术细节进行隔离 182
6.3.2 自定义默认的事务行为 184
6.3.3 在类级别使用@Transactional 185
6.3.4 理解事务传播规则 186
6.3.5 使用进行声明式事务管理 190
6.4 使用Spring进行编程式事务管理 193
6.5 在事务之前或者之后执行自定义逻辑 198
6.5.1 通知事务性操作 199
6.5.2 使用Transaction Synchronization执行事务后的逻辑 200
6.6 小结 201
6.7 习题 201
6.8 本章主要知识点 201
第7章 使用Spring进行测试驱动开发 203
7.1 配置和缓存ApplicationContext 204
7.1.1 在测试中使用基于XML和基于Java的上下文配置 204
7.1.2 使用Application ContextInitializer配置上下文 207
7.1.3 继承上下文配置 208
7.1.4 ApplicationContext缓存 210
7.2 注入测试夹具的依赖项 211
7.3 在测试中使用事务管理 213
7.4 测试Web应用程序 216
7.4.1 测试中的上下文层次结构 218
7.4.2 测试Request和Session作用域的Bean 219
7.4.3 测试Spring MVC项目 221
7.5 使用Mock对象以及其他用于测试的实用工具 225
7.5.1 Spring针对测试所提供的Mock对象 226
7.5.2 其他实用工具和测试注解 226
7.6 小结 227
7.7 习题 227
7.8 本章主要知识点 228
第8章 使用Spring进行面向方面编程 229
8.1 在Spring中开始使用AOP 230
8.2 熟悉通知的类型 235
8.2.1 Before 236
8.2.2 After Returning 236
8.2.3 After Throwing 236
8.2.4 After(Finally) 237
8.2.5 Around 238
8.3 定义切入点指示符 239
8.3.1 类型签名表达式 240
8.3.2 方法签名表达式 240
8.3.3 其他替代的切入点指示符 240
8.4 利用注解的强大功能 241
8.4.1 @Before 241
8.4.2 @PointCut 242
8.4.3 @After 243
8.4.4 @AfterReturning 243
8.4.5 @AfterThrowing 244
8.4.6 @Aspect 244
8.4.7 @Around 244
8.4.8 @DeclareParents 245
8.5 将ApectJ和Spring融合在一起 246
8.6 使用注解配置Spring AOP 250
8.7 小结 251
8.8 习题 251
8.9 本章主要知识点 252
第9章 Spring表达式语言 253
9.1 使用SpEL配置应用程序 254
9.2 创建一个分析器 256
9.3 调用方法 260
9.3.1 调用构造函数 262
9.3.2 调用静态方法 263
9.4 使用变量和函数 263
9.4.1 #root 263
9.4.2 #this 264
9.4.3 访问系统属性和环境 264
9.4.4 内联列表 264
9.4.5 注册函数 265
9.5 了解SpEL运算符 265
9.5.1 关系运算符 266
9.5.2 算术运算符 266
9.5.3 逻辑运算符 266
9.5.4 条件运算符 267
9.5.5 正则表达式运算符 268
9.5.6 安全导航运算符 269
9.5.7 集合选择和投影 269
9.5.8 选择集合中的第一个和最后一个元素 270
9.6 使用SpEL中的实用工具 271
9.6.1 访问Spring Bean 271
9.6.2 271
9.6.3 缓存中的表达式 272
9.7 小结 272
9.8 习题 272
9.9 本章主要知识点 272
第10章 缓存 275
10.1 创建第一个缓存应用程序 276
10.1.1 使用一个不同的名称配置缓存管理器 279
10.1.2 使用注解配置缓存抽象 279
10.2 使用缓存注解 280
10.2.1 @Cacheable 280
10.2.2 @CacheEvict 282
10.2.3 @CachePut 282
10.2.4 @Caching 282
10.3 实现缓存管理器 283
10.3.1 SimpleCacheManager 283
10.3.2 NoOpCacheManager 284
10.3.3 ConcurrentMap CacheManager 284
10.3.4 CompositeCache Manager 284
10.4 将SpEL投射到缓存中 285
10.5 以编程方式初始化缓存 286
10.6 寻找替换的缓存提供程序 288
10.6.1 Ehcache 288
10.6.2 Guava 292
10.6.3 Hazelcast 292
10.7 小结 293
10.8 习题 293
10.9 本章主要知识点 294
第11章 使用Spring开发REST风格的Web服务 295
11.1 创建第一个REST Web服务 296
11.2 从REST Web服务返回不同的HTTP状态码 307
11.3 学习一种基于注解的配置替换方法 308
11.4 通过XML使用REST Web服务 309
11.5 使用异常处理机制 312
11.6 对REST风格的服务进行单元测试 315
11.7 小结 318
11.8 习题 318
11.9 本章主要知识点 318
第12章 使用Spring Security保护Web应用程序的安全 321
12.1 为什么要使用Spring Security 322
12.2 Spring Security的功能 323
12.3 配置和使用Spring Security 324
12.4 理解Spring Security的基础构建基块 330
12.5 对用户进行身份验证 331
12.5.1 不成功的登录流程 331
12.5.2 成功的登录流程 332
12.5.3 匿名身份验证 333
12.5.4 自定义登录页面 334
12.5.5 注销过程 335
12.5.6 使用JDBC访问UserDetails 336
12.5.7 对密码进行加密 339
12.5.8 Remember-Me支持 339
12.5.9 用户会话管理 341
12.5.10 基本身份验证 342
12.6 授权Web请求和服务方法调用 343
12.6.1 授权Web请求 343
12.6.2 授权是如何工作的 345
12.6.3 基于表达式的授权 347
12.6.4 使用JSP安全标记 348
12.6.5 授权服务方法 349
12.7 小结 353
12.8 习题 354
12.9 本章主要知识点 354
第13章 Spring 4.0 357
13.1 跟上最新技术:Java 8和Java EE7支持 357
13.2 使用条件依赖项配置注入 362
13.3 对自动配置集合中的元素进行排序 365
13.4 重复的注解 367
13.5 引入新的注解 369
13.6 小结 370
13.7 习题 370
13.8 本章主要知识点 370
附录A 参考答案 371
· · · · · · (收起)
读后感
书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者...
书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者...
书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者...
书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者...
书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者,以及来复习spring框架的人群 书中很详细的讲解了Spring框架的一些知识,很适合刚学习Spring的初学者...
用户评价
这本《Spring入门经典》简直是为初学者量身定做的宝典!我记得我刚开始接触Java Web开发的时候,光是听到“Spring”这个名字就头大,各种配置、注解、AOP听起来就让人望而却步。但是读了这本书之后,我才发现,原来Spring的魅力可以如此直观和易懂。作者没有一开始就抛出一堆晦涩难懂的理论,而是非常巧妙地从一个实际的项目需求出发,逐步引导我们理解Spring的核心概念,比如IoC容器是如何工作的,依赖注入又是如何简化代码的。特别是它对XML配置和注解配置的对比讲解,让我对这两种方式的优劣有了清晰的认识。书中大量的代码示例都配有详尽的注释,我甚至不需要频繁地去查阅官方文档,跟着书上的步骤一步步敲代码,就能构建起一个功能完整的应用。那种亲手搭建起一个健壮的Web框架的成就感,真是让人欲罢不能。这本书的结构安排也非常合理,从最基础的环境搭建,到核心模块的讲解,再到集成Web开发,逻辑链条清晰,层层递进,让我感觉学习过程非常顺畅,每读完一个章节,都能感到自己的知识体系又坚实了一块。对于任何想快速、扎实地掌握Spring框架的开发者来说,这本书绝对是避不开的敲门砖。
坦白说,这本书的深度和广度确实让人眼前一亮,它不仅仅停留于“入门”这个层面,在某些进阶主题的处理上,也展现了相当的功力。我特别欣赏作者对于Spring AOP(面向切面编程)的阐述。以往我对AOP的理解只停留在“横切关注点分离”这种书面定义上,但书中通过一个日志记录的例子,将前置通知、后置通知、环绕通知这些概念描述得栩栩如生,让我瞬间明白了“切面”是如何在不侵入业务逻辑代码的情况下,完成额外功能的增强。而且,书中对Spring MVC的讲解也十分透彻,从DispatcherServlet的工作流程,到Controller的映射解析,再到数据绑定和视图解析,每一个环节的内部机制都被扒得干干净净。这种由表及里的讲解方式,让我不再满足于仅仅能“用”,而是开始思考“为什么这样设计”。对于那些已经有一定Java基础,但苦于无法真正理解Spring“黑魔法”的开发者,这本书无疑是打开新世界大门的钥匙。读完后,我感觉自己对整个企业级应用开发的架构都有了更深层次的理解,写出来的代码也更加规范和面向未来。
我是一个更偏向于实战检验学习成果的人,所以对那些只谈理论不给实际操作的教材总是心存疑虑。然而,《Spring入门经典》成功地打消了我的顾虑。这本书的每一个重要概念,几乎都紧密地伴随着一个精心设计的实战案例。比如,在讲解数据持久层集成时,作者没有直接用最复杂的JPA,而是从更基础、更易于理解的JdbcTemplate开始,逐步过渡到ORM框架的集成,这种循序渐进的实战路线图,极大地降低了初学者的心理门槛。最让我印象深刻的是,书中对单元测试和集成测试的介绍。在企业级开发中,测试的地位至关重要,但很多入门书籍往往一带而过。这本书却花了大篇幅介绍如何使用Spring提供的测试模块,如何方便地模拟数据库环境进行测试,这让我在后续自己的项目中,也养成了编写高质量测试代码的良好习惯。读完这本书,我感觉自己拿到的不是一堆理论知识,而是一套可以直接投入生产环境的“工具箱”和“操作手册”,实用性极强,没有一丝水分。
这本书的语言风格非常接地气,不像某些技术书籍那样冷冰冰,充满了生硬的术语堆砌。作者在讲解复杂概念时,总能用一些非常形象的比喻来帮助理解,这对于我这种需要时间来消化新知识的读者来说,简直是福音。比如,解释Bean的生命周期时,那种娓娓道来的叙述方式,让人感觉作者像一个经验丰富的前辈在手把手地教导你,而不是一个冰冷的机器在输出信息。此外,书中对Spring Security模块的介绍也处理得非常巧妙。安全是所有Web应用绕不开的话题,但通常它也是最令人头疼的部分之一。这本书没有试图覆盖安全的所有细节,而是抓住了核心——认证和授权的基本流程,用最精简的配置和代码,搭建起了一个可用的安全框架,让读者能迅速建立起对安全机制的基本认识,避免在最初就被那些繁复的过滤器链吓退。这种“先搭骨架,再添血肉”的教学思路,极大地增强了读者的学习信心和连贯性。
我必须得说,这本书在技术选型和版本更新上做得相当到位,这对于一本常青树框架的入门书籍来说尤为重要。我之前翻阅过一些老旧的Spring教程,里面充斥着大量的过时API和已经被废弃的配置方式,让人学了反而要花时间去“忘掉”那些错误的做法。但《Spring入门经典》所选用的技术栈和示例代码,都是当前业界主流推荐的实践。无论是对Java 8+特性的运用,还是对最新版Spring Boot集成方式的介绍,都体现了作者紧跟技术潮流的专业态度。特别是关于构建现代化微服务所需的一些基础配置,书中也有所涉及,虽然不深入,但提供了清晰的指引方向。对于一个希望学习新技术栈的开发者而言,选择一本与时俱进的教材至关重要,这本书无疑在这方面做得非常出色,它确保了我所学到的知识在未来几年内仍具有很高的实用价值,而不是仅仅停留在理论研究的层面。
入门书,还不错,凑合吧。
很新的书,涉及到了,4.0.5。正数书中文名:入门。这本书很好的讲了是什么,怎么用,但是并未设计为什么
感觉入门的话,这本书讲的挺好,关键例子很多,还挺完整的。
原书不错。翻译烂,搞不懂译者水平这么烂也有脸翻译
入门书,还不错,凑合吧。