前言
我们在用心做事,做最好的教育,最好的书籍。
——北京魔乐科技教学总监 李兴华
很早以前,我就想写一本关于Spring开发框架的书。但由于日常教学与课程研发的工作量实在太大,这一想法迟迟未能得以实现。也许是机缘巧合,2018年我抽出了许多时间,把自己的课堂笔记进行了细致整理,顺便将我15年来使用Spring的心得与技术感悟写了下来,于是有了本书。全书写完的那一刻,有一种轻松的感觉。写完本书后,我将继续回到培训教学与课程研发的繁忙工作之中。
写书是一件造福后来者的事情,一本书的作者实际上担负着知识传承的作用。我希望跟所有学生分享我的技术心得,所以对于本书坚持了我一贯的做法——全部是原创内容。我认为,中国缺少真正的本土原创好书,但不缺那种靠简单的抄袭或疯狂的复制+粘贴堆砌起来的书。
在我十多年的教学生涯之中,发现很多学生都在不断重复着这样一种尴尬和窘境:辛辛苦苦买来一本书,却发现书的内容质量不过关,缺少合理的知识结构体系,技术描述晦涩难懂,所以只看了几眼就扔到了角落里。这样不仅是对金钱的浪费,更是对纸张与环境的浪费及破坏。对于贫困家庭走出来的我而言,非常清楚地知道“学习成本”有多么高,所以我要写真正的原创图书,而非那些靠复制+粘贴拼凑字数的“假书”。这一原则陪伴我走过了十年的创作生涯。
Spring是一个庞大的开发框架,其庞大不仅体现在强大的Spring技术本身,更体现在它能整合各类服务组件这一重任上。这就需要从业者掌握大量的开发技术,而这也正是本书创作的难点所在。为了方便读者学习,我在讲解Spring技术时还讲解了一些第三方技术,如ActiveMQ消息组件、Redis数据库、JPA开发框架、WebService技术、缓存技术等,并讲解了这些技术与Spring开发框架的整合。这样做的主要目的,是为了给读者一个可以直接使用的开发技术架构(见下图),读者理解起来会更容易,后期上手项目开发也会更轻松。
本书特色
15年Spring开发与教学培训经验总结,准确把握学习脉搏,深入分析重点难点。
使用Eclipse + Maven进行项目开发,与真实项目开发环境完美对接。
全书200个实际案例(附赠源代码),全面分析了Spring的各项应用技术,读者可轻松掌握Spring开发的核心要领。
详细讲解了Redis数据库的各项使用技术以及SpringDataRedis开发技术。
详细讲解了JPA开发框架的各项开发技术,并且深入分析了SpringDataJPA技术的使用案例。
Expression Language(EL)模块:表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器、命名变量,支持算术和逻辑运算,支持从Spring容器获取Bean,也支持列表透明、选择和一般的列表聚合等。利用表达式语言,可以更加灵活地控制配置文件。
提供了当前流行的高并发抢红包处理案例与SpringMVC + SpringDataJPA整合案例。
本书章节安排
第1章 Spring开发框架概述。作为起始章,本章为读者分析了传统Java EE开发架构的设计组成与弊端,并介绍了Spring开发框架的组成。
第2章 控制反转。本章通过几段具体程序,分析了Spring的设计理念和控制反转技术的使用,并结合Junit讲解了SpringTest的使用。
第3章 Bean管理。本章主要讲解了Spring开发框架提供的Bean配置,分析了各种数据类型的配置以及Spring中提供的Bean管理机制。
第4章 Spring资源管理。本章主要讲解了Spring提供的资源处理标准,利用它可实现各种资源文件的读取;同时介绍了如何结合配置文件并利用表达式实现资源定位。
第5章 Spring表达式语言。Spring中,最强大的部分就是字符串支持能力。本章详细分析了Spring表达式的执行流程以及各种操作语法,并结合Spring配置文件,通过实例说明了SpEL语言的应用。
第6章 定时调度。定时调度可以实现业务的自动处理,本章为读者讲解了QuartZ与SpringTask两个定时调度组件的配置与使用。
第7章 AOP切面编程。AOP是Spring中重要的技术组成,本章主要讲解了AOP的主要概念,以及如何在Spring中利用配置文件或Annotation注解实现AOP编程控制。
第8章 Spring与JMS消息组件。本章结合ActiveMQ组件,为读者讲解了Spring与JMS整合开发。
第9章 Spring与WebService。本章主要讲解了WebService的作用以及Spring实现处理,并结合CXF框架实现了WebService开发。
第10章 Spring与Redis数据库。本章主要讲解了如何在Linux下实现Redis数据库的安装与配置,分析了Redis中各个数据类型的使用、主从配置、哨兵机制、RedisCluster相关技术,并通过实际代码演示了Spring与Redis集成,最后通过一个实际的“抢红包”案例分析了Redis的操作特点。
第11章 JDBC操作模板。本章主要讲解了Spring提供的JDBC Template的配置与使用,分析了SpringCache相关技术的使用,以及如何与EHCache或Redis结合实现缓存管理。
第12章 Spring事务管理。本章为读者分析了Spring提供的事务处理架构,并讲解了基于AOP实现的事务管理。
第13章 SpringDataJPA。本章主要讲解了JPA开发框架的使用、Query查询、缓存配置、数据关联等相关技术,同时讲解了如何利用SpringDataJPA实现数据层开发。
第14章 SpringMVC。本章主要讲解了SpringMVC的处理架构及各项实现技术,最后通过一个完整案例讲解了SpringMVC + SpringDataJPA的联合开发应用。
第15章 SpringSecurity。本章主要讲解了Spring中提供的认证与授权检测框架的配置与使用,结合SpringMVC实现了登录认证、授权检测、CSRF访问控制、Session管理和RememberMe操作实现。
寄语读者
本书全篇由笔者根据实践项目与教学经验总结而来,虽经过再三斟酌和审校,仍难免存在技术理解上的偏差和解释不到位的地方,欢迎读者来信指教(mldnqa@163.com)。您的宝贵建议将帮助我们修正此书,大家一起努力,将传道、授业、解惑贯彻到底。
本书用到的程序源代码,读者可扫描下面的“文泉云盘”二维码获取其下载方式,也可登录清华大学出版社网站(www.tup.com.cn)进行下载。技术学习部分,读者可登录http://www.mldn.cn官方网站进行学习。
文泉云盘 获取学习资源
最后,希望本书成为您的良师益友。祝您读书快乐!