课程简介
如今微服务架构已经慢慢成为了互联网架构的主流,Spring Boot 正是这股潮流的主先锋。
本课程是围绕 Spring Boot 技术栈的系列教程,目标是带领读者了解 Spring Boot 各种特性,学会使用 Spring Boot 相关技术栈上手开发项目。课程以 Spring Boot 所支持的技术栈为主线,一步一步了解每个组建的使用方式,最后综合演练。
认真学完这个系列文章之后,会对 Spring Boot 有进一步的了解,具备使用 Spring Boot 上手进行开发的基本能力。
作者简介
张强,曾经先后在互联网金融、第三方支付公司担任高级 Java 工程师、架构师、技术经理、技术负责人等职务。在互联网金融工作期间,从零参与公司技术平台建设,组织平台进行过四次大架构升级。目前在一家第三方支付公司做技术总监,负责支付公司微服务架构实践和大数据平台建设。
课程内容
第01课:课程概要
背景这个事情还要从 Spring 说起,2000 年左右 Java 行业中都是 EJB 的天下,但是 EJB 本身比较庞大复杂,各企业使用起来并不是很便利。有一个大神就站了出来,他就是 Rod Johnson。他认为企业开发应该更简单,没有必要全部使用 EJB,企业开发应该是一个统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。
于是在 2002 年编写了一本书叫 《Expert One-to-One J2EE Design and Development ”(Wrox,2002)》,进一步的阐述了自己的思想。在这本书中,Rod Johnson 展示了他的 interface 21 框架,这一框架被发布到开源世界后,组成了现在我们所知的 Spring 框架的基础。接下来 Spring 发展迅速,平均两三年就会发布一个新版本,直到最近 9 月份推出的 Spring 5.0,Spring 也从一个小小的开源软件发展为 Java 界第一个框架,覆盖的内容也越来越广泛。
Spring 在不断发展的过程中也出现了一些问题,随着 Spring 边界不断扩张,需要的配置文件也越来越多,使用起来也越复杂,项目中也经常因为配置文件配置错误产生很多问题。慢慢 Spring 变成了一个大而全的框架,背离它简洁开发的理念。Spring 也意识到了这些问题,急需有这么一套软件可以解决这些问题,这个时候微服务的概念也慢慢兴起,Spring 站在了这么一个高度上开发了一个全新的技术栈:Spring Boot。
Spring Boot 介绍Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。采用 Spring Boot 可以大大的简化开发模式,所有你想集成的常用框架,它都有对应的组件支持。
Spring Boot 是一套全新的框架,它来自于 Spring 大家族,因此 Spring 所有具备的功能它都有,而且更容易使用;Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。Spring Boot 开发了很多的应用集成包,支持绝大多数开源软件,让我们以很低的成本去集成其他主流开源软件。
Spring Boot 特性
- 使用 Spring 项目引导页面可以在几秒构建一个项目
- 方便对外输出各种形式的服务,如 REST API、WebSocket、Web、Streaming、Tasks
- 非常简洁的安全策略集成
- 支持关系数据库和非关系数据库
- 支持运行期内嵌容器,如 Tomcat、Jetty
- 强大的开发包,支持热启动
- 自动管理依赖
- 自带应用监控
- 支持各种 IED,如 IntelliJ IDEA 、NetBeans
热度
Spring Boot 本身发展特别快,自从 2014 年 4 月发布 Spring Boot 1.0 之后,版本更新非常频繁,我在 2016 年使用的时候是 1.3.X,到现在 Spring Boot 最新稳定版本为 1.5.8,2.0 版本也进入了第 5 个里程碑。Spring Boot 一经推出就迅速的成为一门热门的技术,从下图也可以看出这个结论:
此图来自于百度指数,从图中可知,自从 2015 年 6 月开始,Spring Boot 的搜索指数呈稳定大幅增长的趋势,说明大家对 Spring Boot 的关注度越来越高。
此图截取于 Spring Boot 的首页,可以看出 Spring 在官网重点推荐了三个项目,Spring Boot 排名第一,可见官方的重视程度。
为什么学习 Spring Boot-
从软件发展的角度来讲,越简单的开发模式越会流行。简单的开发模式解放出更多生产力,让开发人员可以将精力集中在业务上,而不是各种配置、语法所设置的门槛上。Spring Boot 就是尽可能的简化应用开发的门槛。
-
Spring Boot 所集成的技术栈,几乎都是各互联网公司在使用的技术,按照 Spring Boot 的路线去学习,基本可以了解国内外互联网公司的技术特点。
-
Spring Boot 和微服务架构都是未来软件开发的一个大趋势,越早参与其中受益越大。
早些时候由于工作原因研究并使用了 Spring Boot,在使用时发现,国内对于 Spring Boot 介绍的资料并不是很多,网上充斥着各种资料质量参差不齐,这给初学者带来了很大的困扰。于是我在网络上连载了 Spring Boot 的系列文章,并且受到广大网友的喜欢。早期的文章可以在我的个人公众号或者博客查看:
- 我的公众号
- 我的博客
回过头来再次翻看这些文章,很多的 API 已经过时,大多数文章也只是理论为主,并且那时候对 Spring Boot 没有一个整体的了解,文章只是罗列了最基本的使用。因此我又重新梳理了 Spring Boot 技术栈,将其中工作中最常用、最具实战代表性的一些内容重新整理出来,以 GitChat 达人课的形式来展现。课程也增加了实战项目的内容,让你亲自体会如何使用 Spring Boot 技术栈进行快速开发,并且可以很快的应用在工作中。
本期达人课,首先介绍如何使用 Spring Boot 进行快速开发,再一起探讨 Spring Boot 如何快速集成主流开源软件,最后使用 Spring Boot 技术栈实现一个简单的用户管理系统,进行实战演练。通过本课程学习,可以掌握工作中最常用的技术和实际项目的使用经验。
适合阅读的人群该系列文章适合以下人群阅读:
- 从事 Java 相关开发对 Spring Boot 感兴趣的人员
- 传统开发领域,急迫想打破原有开发模式的开发人员
在学习本节课程之前,首先需要了解 Spring、Maven 和其他开源软件的基础技能。
因为 Spring Boot 2.0 还在开发中,为了更贴近实战,我们选取 Spring Boot1.5.8.RELEASE 版本进行演示。
开发环境:
- IDEA 2017
- JDK 1.8
使用到的软件:
- JPA
- MyBatis
- Thymeleaf
- Druid
- Redis
- RabbitMQ
- MongoDB
- Quartz
- 快速实战 Spring Boot
- 快速体验 Web 开发
- Spring Data JPA 的使用
- 前端模板引擎 Thymeleaf
- JPA 和 Thymeleaf 实践
- Spring Boot 集成 MyBatis
- MyBatis Druid 多数据源
- 如何玩转 Redis
- Redis 实现 Session 共享
- RabbitMQ 详解
- MongoDB 实战
- 使用 Spring Boot 发送邮件
- Spring Boot 集成 Quartz
- Spring Boot 集成测试和部署运维
- 综合实战用户管理系统
点击这里下载源码 。
第02课:快速实战 Spring Boot
什么是 Spring BootSpring 在官方首页这样介绍:
BUILD ANYTHING . S