编辑推荐
国内市场上为数不多的讲解SpringBoot的中文书。
《JavaEE开发的颠覆者:Spring Boot实战》从Spring基础、SpringMVC基础讲起,适合初学者。
《JavaEE开发的颠覆者:Spring Boot实战》涵盖了使用SpringBoot进行JavaEE开发的绝大数应用场景,如Web开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。
全栈解决JavaEE开发中所遇到的绝大多数问题。
《JavaEE开发的颠覆者:Spring Boot实战》特点1《JavaEE开发的颠覆者:Spring Boot实战》每个章节的基本架构都是:点睛+实战。
点睛:用简练的语言去描述当前的技术;
实战:对当前技术进行实战意义的代码演示。
《JavaEE开发的颠覆者:Spring Boot实战》特点2技术相关,业务不相关。
在《JavaEE开发的颠覆者:Spring Boot实战》的实战例子中不会假设一个业务需求,然后让读者既要理解技术,又要理解假设的业务,《JavaEE开发的颠覆者:Spring Boot实战》的目标是让读者“学习时只关注技术,开发时只关注业务”。
内容简介
在当今JavaEE开发中,Spring框架是当之无愧的王者。而SpringBoot是Spring主推的基于“习惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得JavaEE开发变得异常简单。
《JavaEE开发的颠覆者:Spring Boot实战》从Spring基础、SpringMVC基础讲起,从而无难度地引入SpringBoot的学习。涵盖使用SpringBoot进行JavaEE开发的绝大数应用场景,包含:Web开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。
当你学完《JavaEE开发的颠覆者:Spring Boot实战》后,你将能使用SpringBoot解决JavaEE开发中所遇到的绝大多数问题。
作者简介
汪云飞,开源技术专家,现任职微璟技术CTO,拥有10年以上的JavaEE开发经验。对开源Java框架(Spring、Hibernate/JPA、SpringBoot)、开源GIS(GeoServer、OpenLayers),开源云计算解决方案(IaaS:ClouStack、OpenStack;PaaS:ApacheMesos、Deis、Docker)颇有研究。其撰写的技术博客被大量的阅读和转载。
目录
第一部分点睛Spring4.x
第1章Spring基础2
1.1Spring概述.2
1.2Spring项目快速搭建5
1.3Spring基础配置.17
第2章Spring常用配置30
2.1Bean的Scope.30
2.2SpringEL和资源调用33
2.3Bean的初始化和销毁37
2.4Profile40
2.5事件(ApplicationEvent)44
第3章Spring高级话题48
3.1SpringAware.48
3.2多线程.51
3.3计划任务.54
3.4条件注解@Conditional56
3.5组合注解与元注解.60
3.6@Enable*注解的工作原理63
3.7测试.66
第二部分点睛SpringMVC4.x
第4章SpringMVC基础72
第三部分实战SpringBoot
第5章SpringBoot基础.122
第6章SpringBoot核心.138
第7章SpringBoot的Web开发170
7.1SpringBoot的Web开发支持.170
7.2Thymeleaf模板引擎.171
7.2.4实战177
7.3Web相关配置.182
7.4Tomcat配置187
7.5Favicon配置.196
7.6WebSocket.197
7.7基于Bootstrap和AngularJS的现代Web应用212
第8章SpringBoot的数据访问233
8.1引入Docker237
8.2SpringDataJPA248
8.3SpringDataREST.284
8.4声名式事务.297
8.5数据缓存Cache309
8.6非关系型数据库NoSQL320
8.6.1MongoDB.320
8.6.2Redis.329
第9章SpringBoot企业级开发340
9.1安全控制SpringSecurity.340
9.2批处理SpringBatch.362
9.3异步消息.385
9.4系统集成SpringIntegration.395
第10章SpringBoot开发部署与测试.407
第11章应用监控.431
第12章分布式系统开发456
12.1微服务、原生云应用.456
12.2SpringCloud快速入门.457
12.3实战.458
12.4基于Docker部署.478
附录A
前言/序言
我有将平时工作所悟写成博客以记录的习惯,随着逐渐的积累,终于可以形成目前这样一本实战性的手册。我平时在阅读大量的Spring相关书籍的时候发现:很多书籍对知识的讲解一味求全求深,导致读者很难快速掌握某一项技术,且因为求全求深而忽略了最佳实践,让读者云里雾里,甚至半途而废。
所以《JavaEE开发的颠覆者:Spring Boot实战》的每个章节的基本架构都是:点睛+实战。
点睛:用最简练的语言去描述当前的技术;
实战:对当前技术进行实战意义的代码演示。
《JavaEE开发的颠覆者:Spring Boot实战》代码的另一个特点是:技术相关,业务不相关。在《JavaEE开发的颠覆者:Spring Boot实战》的实战例子中不会假设一个业务需求,然后让读者既要理解技术,又要理解假设的业务,《JavaEE开发的颠覆者:Spring Boot实战》的目标是让读者“学习时只关注技术,开发时只关注业务”。
《JavaEE开发的颠覆者:Spring Boot实战》涉及的技术比较广,尤其是第三部分:实战SpringBoot,这让我很难在一《JavaEE开发的颠覆者:Spring Boot实战》中对每一项技术细节都详细说明;我希望《JavaEE开发的颠覆者:Spring Boot实战》能为读者在相关技术应用上抛砖引玉,读者在遇到特定技术的问题时可以去学习特定技术的相关书籍。
Spring在JavaEE开发中是实际意义上的标准,但我们在开发Spring的时候可能会遇到以下让人头疼的问题:
(1)大量配置文件的定义;
(2)与第三方软件整合的技术问题。
Spring每个新版本的推出都以减少配置作为自己的主要目标,例如:
(1)推出@Component、@Service、@Repository、@Controller注解在类上声明Bean;
(2)推出@Configuration、@Bean的Java配置来替代xml配置。
在脚本语言和敏捷开发大行其道的时代,JavaEE的开发显得尤为笨重,让人误解JavaEE开发就该如此。Spring在提升JavaEE开发效率的脚步上从未停止过,而SpringBoot的推出是具有颠覆和划时代意义的。SpringBoot具有以下特征:
(1)遵循“习惯优于配置”原则,使用SpringBoot只需很少的配置,大部分时候可以使用默认配置;
(2)项目快速搭建,可无配置整合第三方框架;
(3)可完全不使用xml配置,只使用自动配置和JavaConfig;
(4)内嵌Servlet(如Tomcat)容器,应用可用jar包运行(java–jar);
(5)运行中应用状态的监控。
虽然SpringBoot给我们带来了类似于脚本语言开发的效率,但SpringBoot里没有使用任何让你意外的技术,完全是一个单纯的基于Spring的应用。如SpringBoot的自动配置是通过Spring4.x的@Conditional注解来实现的,所以在学习SpringBoot之前,我们需要快速学习Spring与SpringMVC的基础知识。
第一部分:点睛Spring4.x
快速学习Spring4.x的各个知识点,包括基础配置、常用配置以及高级配置,以便熟悉常用配置,并体会使用Java语法配置所带来的便捷。
第二部分:点睛SpringMVC4.x
快速学习SpringMVC4.1的各个知识点,MVC的开发是我们日常开发工作中最常打交道的,所以学习SpringMVC对SpringBoot的使用极有帮助。
第三部分:实战SpringBoot
这部分是整《JavaEE开发的颠覆者:Spring Boot实战》的核心部分,每个章节都会通过讲解和实战的例子来演示SpringBoot在实际项目中遇到的方方面面的情况,真正达到让SpringBoot成为JavaEE开发的实际解决方案。
SpringBoot发布于2014年4月,根据知名博主Baeldung的调查,截至2014年年底,使用SpringBoot作为Spring开发方案的已有34.1%,这是多么惊人的速度。
希望读者在阅读完《JavaEE开发的颠覆者:Spring Boot实战》后,能够快速替代现有的开发方式,使用SpringBoot进行重构,和大量配置与整合开发说再见!
《JavaEE开发的颠覆者:Spring Boot实战》是我的第一本技术书籍,主要目的是让读者快速上手SpringBoot这项颠覆性的JavaEE开发技术,由于作者水平有限,书中纰漏之处在所难免,敬请读者批评指正。