什么是Springboot?
官方是这么定义的:
Spring Boot 是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。
为什么要用Spring boot?
总的来说其实就是简单、快速、方便!平时如果我们需要搭建一个 Spring Web 项目的时候需要怎么做呢?
- 1)配置 web.xml,加载 Spring 和 Spring mvc
- 2)配置数据库连接、配置 Spring 事务
- 3)配置加载配置文件的读取,开启注解
- 4)配置日志文件
- ...
- 配置完成之后部署 Tomcat 调试
- ...
可以看出来真的很麻烦
现在非常流行微服务,如果这个项目仅仅只是需要发送一个邮件,即使项目仅仅是生产一个积分;都需要这样折腾一遍!
但是如果使用 Spring Boot 呢?
很简单,仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套 Web 项目或者是构建一个微服务!
具体实现且看下面这一份文档:
Spring Boot2 精髓
第1章 Java EE简介
- Java EE
- Spring
- Spring Boot
- Hello, Spring Boot
介绍Java EE,然后指出其缺点,引入了流行的Spring,同时也说明Spring经过这么多年发展后暴露的一些缺点, 从而引出Spring Boot,并以两个简要例子作为说明。
第2章 Spring Boot基础
- 检查Java环境与安装Java
- 安装和配置Maven
- Spring核心技术
对Spring Boot应用的开发环境做了说明,包括Java开发环境的安装和配置, Maven的安装和配置,设置国内仓库镜像,还有常用的Maven命令。本章最后介绍Spring历史以及现有开发团队,并介绍Spring框架的AOP和loC两个核心技术
第3章 MVC框架
- 集成MVC框架
- 使用Controller
- URL映射到方法
- 方法参数
- 验证框架
- WebMvcConflgurer
- 视图技术
- 通用错误处理
- Service和Transactional
- curl齡
介绍MVC技术,前半部分重点介绍URL映射到Contoller,以及映射到Controller方法的参数、参数类型转化、参数验证。后半部分简单介绍MVC中的视图技术Freemaker. Beet.,以及Jackson序列化技术。Bet和Jackson将在第4章详细介绍。
第4章 视图技术
- Beet|模板引擎
- 使用变量
- 表达式
- 控制语句
- 函数调用
- 格式化函数
- 直接调用Java
- 标签函数
- HTML标签
- 安全输出
- 高级功能
- 脚本引擎
- JSON技术
- MVC分离开发
介绍笔者的开源技术Beetl后端模板引擎,作为国内流行的模板引擎之一,具有简单易学、功能/性能强大、支持MVC分离开发等特点。另外一部分详细介绍Jackson的JISON序列化技术。Jackson 不仅作为Spring MVC中的JISON默认工具,也是Spring Boot分布式技术中常采用的JSON序列化技术。
第5章 数据库访问
- 配置数据源
- Spring JDBC Template
- BeetISQL介绍
- SQLManager内置CRUD
- 使用salld
- BeetISQL的其他功能
介绍以SQL为中心的数据库访问工具BeetlSQL, 这是笔者的另外一款流行Dao工具,SQL 在markdown文件中管理,内置增删改查、轻量级ORM功能、代码生成、主从支持、跨多种数据库等特点,适合那些更喜欢以SQL方式访问数据库的开发者。
第6章 Spring Data JPA
- 集成Spring Data JPA
- Repository
介绍以面向对象为中心的数据库访问工具Spring Data JPA.本章由易到难,先从Spring Data提供的功能入手,介绍如何完成数据库简单的增删改查功能,然后引入JPA来解决应用中不可避免的复杂SQL查询。
第7章Spring Boot配置
- 配置Spring Boot
- 日志配置
- 读取应用配置
- Spring Boot自动装配
介绍Spring Boot 高级特性,如常用的Spring Boot的配置、日志配置、应用配置的读取、Spring Boot自动装配技术和Spring Boot Starter实现。
第8章 部署Spring Boot应用
- 以jar文件运行
- 以war方式部署
- 多环境部署
- Profile注解
介绍如何部署Spring Boot 应用,包括可执行jar,以及通过war部署到应用服务器上。应用经常面对多个环境,如开发、测试,还有准线上、线上,以及多个Demo环境,SpringBoot提供Profile来实现多环境部署。
第9章 Testing单元测试
- JUnit介绍
- Spring Boot单元测试
- Mockito
- 面向数据库应用的单元测试
介绍单元测试概念,以及Spring Boot下的单元测试支持,包括MVC单元测试、Mock测试,以及面向数据库应用的测试方案。
需要这份文档的老哥可以点击此处来获取就可以了!
第10章 REST
- REST简介
- Spring Boot集成REST
- Swagger UI
- 模拟REST服务
介绍RESTful风格的架构,然后介绍Spring Boot如何集成以提供REST服务,使用RestTemplate调用REST服务。本章最后也重点介绍了Swagger 3.0技术,以方便REST的接口的交流、开发和测试。
第11章 MongoDB
- 安装MongoDB
- 使用shell
- Spring Boot集成MongoDB
- 增删改查
介绍MongoDB的安装和使用,然后介绍Spring Boot如何集成MongoDB,同时还介绍了如何用MongoTemplate访问MongoDB。
第12章 Redis
- 安装Redis
- 使用redis-cli
- Spring Boot集成Redis
- 使用StringRedisTemplate
- 序列化策略
介绍Redis服务器的安装和使用,Redis常用的数据结构和操作命令。然后介绍SpringBoot如何集成Redis,如何使用Redis' Template来操作Redis.本章后半部分深入介绍了RedisTemplate提供的序列化机制。
第13章 Elasticsearch
- Elasticsearch介绍
- 使用REST访问Elasticsearch
- 使用RestTemplate访问ES
- Spring Data Elastic
介绍Elasticsearch 的安装和使用,Elasticsearch 既具有全文搜索功能,也能像MongoDB那样,具备NoSQL的功能。本章介绍通过REST和Spring Data两种方式访问Elasticsearch.
第14章 Cache
- 关于Cache
- Spring Boot Cache
- 注释驱动缓存
- 使用Redis Cache
- Redis缓存原理
- 实现Redis两级缓存
介绍SpringBootCache,并重点介绍Redis作为分布式缓存的实现。在此基础上,改进了Redis 分布式缓存,通过较少的代码实现了一个具备一二级缓存的技术方案。
第15章 Spring Session
- 水平扩展实现
- Nginx的安装和配置
- Spring Session
Spring Boot应用水平扩展,需实现无会话状态技术,Spring Session 提供了分布式会话管理,本章介绍了Nginx作为反向代理的内容,以及Spring Session的Redis实现及其源码分析。
第16章 Spring Boot和ZooKeeper
- ZooKeeper
- Spring Boot集成ZooKeeper
- 实现分布式锁
- 服务注册
- 领导选取
基于第15章SpringBoot应用水平扩展技术必然带来分布式协调要求,ZooKeeper是一个广泛使用的分布式协调器。本章介绍ZooKeeper的安装和使用,对领导选取、分布式锁和服务注册三个常用功能做了重点描述,并在Spring Boot应用中采用Curator来完成这三个功能。
第17章 监控Spring Boot应用
- 安装Acutator
- HTTP踉踪
- 日志查看
- 线程找信息
- 内存信息
- 查看URL映射
- 查看Spring容器管理的Bean
- 其他监控
- 编写自己的监控信息
Spring Boot提供了内置监控功能,使得用户通过HTTP请求就能知晓服务器的健康状态,如数据源是否可用、NoSQL服务是否可用、最近的HTTP访问的内容等监控信息。本章讲述了线程栈、内存、在线日志、HTTP访问、RequestMapping等常用监控功能。其中还讲述通过dump线程栈和内存来解决SpringBoot应用中的一些性能故障。
这份文档系统介绍了Spring Boot 2.0的主要技术,侧重于两个方面,一方面是极速开发一个 Web应用系统,随后介绍了Spring Boot的高级特性,包括多环境部署、自动装配、单元测试等技术。另外一方面,当系统模块增加,性能和吞吐量要求增加时,如何平滑地用Spring Boot来实现分布式架构。
需要这份文档的老哥可以点击此处来获取就可以了!