前言
SpringBoot介绍
SpringBoot的本质是SpringFramework(IoC,AOP)的再次封装的上层应用框架,通过简化配置来进一步简化了Spring应用的整个搭建和开发过程,其作用是方便开发独立的应用程序
- 采用Starter POM简化Maven的配置
- 大量采用约定简化Spring的配置
- 内嵌Tomcat、Jetty或Undertow
- 提供产品级的运行监控Actuator功能
Spring和SpringBoot的区别
1.Spring 是用于简化 Java 企业级应用的开发难度和开发周期,两大核心IOC 与 AOP有效的管理了开发中对象的生命周期问题,也提供了与很多框架整合的工具
但Spring需要配置大量的 XML 和文件搭建
- 配置web.xml,加载Spring和Spring MVC
- 配置数据库连接Spring JDBC,配置Spring事务
- 配置加载配置文件的读取,开启注解
- 配置完成之后部署Tomcat调试
- ……
Spring中引导配置,常用的注解通常分为两类,一类是用来注册Bean,一类是用来使用Bean,简单的来说bean就是一个被实例化的对象,Spring Bean的生命周期从创建容器开始,到容器销毁Bean为止
2.SpringBoot 是对 Spring 框架的扩展或者再封装,通过简化配置来进一步简化了Spring应用的整个搭建和开发过程
而使用 Spring Boot 来开发项目,可以省去大量的配置,由Java 配置替代XML 配置写在 apaplication.properties 中,就可以搭建起来一个 Web 项目
- 通过自动配置,解决配置复杂问题
Spring Boot中引导配置,从应用程序的入口点使用@SpringBootApplication注释的类
小编接下来给大家带来的这份Spring Boot2精髓 从构建小系统到架构分布式大系统,不仅由浅入深地讲解了Spring Boot,+jcc4261还对2.0版本带来的新特性亦有非常详尽的描述,绝对值得一看!
小编将从前言、目录,主要内容为大家讲解是springboot2精髓,同时,也希望本文能够帮助到大家的学习
目录一览
主要内容
本篇文章共17章,大概分为两个部分
上半部分主要介绍Spring Boot的基础技术(第一章~第九章)
下半部分介绍与Spring Boot相关的分布式技术(第十章~第十七章)
下面就给大家做介绍:
第1章JavaEE简介
本章主要介绍Java EE,然后指出其缺点,引入了流行的Spring,同时也说明Spring经过这么多年发展后暴露的一些缺点,从而引出Spring Boot,并以两个简要例子作为说明。
第⒉章Spring Boot基础
这章对Spring Boot应用的开发环境做了说明,包括Java开发环境的安装和配置,Maven的安装和配置,设置国内仓库镜像,还有常用的Maven命令。本章最后介绍Spring历史以及现有开发团队并介绍Spring框架的AOP和IoC两个核心技术。
第3章MVC框架
在Spring框架和Spring Boot 中,最常用的技术就是MVC框架。本章将介绍MVC 中最实用的部分,一些不常用的技术,或者过时的技术将不做介绍。
- MVC框架会处理类似如下相同的技术需求
- HTTP URL 映射到Controller某个方法
- HTTP参数映射到Controller方法的参数上,比如参数映射到某个Java对象,或者上传附件映射到某个File对象上
- 参数的校验
- MVC错误处理
- MVC中如何调用视图
- MVC中如何序列化对象成JSON
-
拦截器等高级定制
第4章视图技术
本章介绍MVC中的后端视图技术,一种是后端模板引擎Beetl,用于渲染模板;另外一种是JSON序列化技术Jackson
本章选择介绍Beetl,主要考虑到一方面笔者作为Beetl的开发者,对其非常熟悉;另外一方面,
Beetl普遍应用在国内顶尖互联网公司、大中型企业,具有易使用和性能良好等特点,有非常好的国内口碑。
第5章数据库访问
本章将主要介绍Spring JDBC Template和BeetlSQL两种数据库访问方式,JDBC Template是Spring自带的,在JDBC的基础上做了一定封装,而BeetlSQL是笔者研发的,除了封装了JDBC操作,还带有SQL 管理、跨数据库平台支持等企业功能。它们的共同点都是以SQL为核心。
第6章Spring Data JPA
本章将介绍Spring Data JPA,它在JPA提供的简单语义上做了一定的封装,满足CRUD查询。同时,也会介绍Spring Data,它为Spring框架对访问SQL和NoSQL数据库提供了一致的方式。考虑到JPA本身学习有一定的门槛,本章只重点学习Spring Data JPA的相关知识。
第7章Spring Boot配置
本章主要介绍Spring Boot高级特性,如常用的Spring Boot的配置、日志配置、应用配置的读取、Spring Boot自动装配技术和Spring Boot Starter实现。
第8章部署Spring Boot应用
这一章我们讲述如何部署Spring Boot应用,Spring Boot可以以jar方式运行,也可以部署到支持
Servlet3.0或者支持较早的Servlet2.5的Web服务器上。
第9章Testing单元测试
介绍单元测试概念,以及Spring Boot下的单元测试支持,包括MVC单元测试,Mock测试,以及面向数据库应用的测试方案。
下半部分:
第10章 REST
这章主要介绍RESTful风格的架构,然后介绍Spring Boot如何集成以提供REST 服务,使用RestTemplate调用REST服务。本章最后也重点介绍了Swagger 3.0技术,以方便REST的接口的交流、开发和测试。
第11章MongoDB
MongoDB由C++语言编写,是一个基于分布式文件存储的开源数据库系统,支持的数据结构为BSON格式,类似JSON的一种格式,因此可以存储非常复杂的数据,具有以下特点:
- 支持各种编程语言,Java、C+十、PHP、C#、Python等
- 面向文档存储,文档格式是类似JSON的BSON格式
- 提供丰富的查询功能,支持对数据建立索引
-
模式自由,不需要事先定义文档格式,可以任意改变文档格式
第12章Redis
这章主要介绍 Redis服务器的安装和使用,Redis常用的数据结构和操作命令。然后介绍Spring Boot如何集成Redis,如何使用RedisTemplate来操作Redis。本章后半部分深入介绍了RedisTemplate提供的序列化机制。
第13章Elasticsearch
本章主要介绍Elasticsearch 的安装和使用,Elasticsearch既具有全文搜索功能,也能像MongoDB那样,具备NoSQL的功能。介绍通过REST和Spring Data两种方式访问Elasticsearch。
第14章Cache
本章介绍Spring Boot应用系统中Cache的一般概念,Spring Cache对Cache进行了抽象,提供了@Cacheable、@CachePut、@CacheEvict等注解。Spring Boot应用基于Spring Cache,既提供了基于内存实现的缓存管理器,可以用于单体应用系统,也集成了Redis、EhCache等缓存服务器,可用于大型系统或者分布式系统。
本章最后深入剖析Spring Boot提供的RedisCacheManager代码,并扩展出一个性能更好的一二级缓存系统原型。
第15章Spring Session
Spring Boot应用水平扩展,需实现无会话状态技术,Spring Session提供了分布式会话管理,本章介绍了Nginx作为反向代理的内容,以及Spring Session的Redis'实现及其源码分析。
第16章Spring Boot 和ZooKeeper
基于第15章Spring Boot应用水平扩展技术必然带来分布式协调要求,ZooKeeper是一个广泛使用的分布式协调器。本章介绍ZooKeeper 的安装和使用,对领导选取、分布式锁和服务注册三个常用功能做了重点描述,并在Spring Boot应用中采用Curator来完成这三个功能
第17章监控Spring Boot应用
本章主要讲述了线程栈、内存、在线日志、HTTP 访问、RequestMapping 等常用监控功能。其中还讲述通过dump线程栈和内存来解决Spring Boot应用中的一些性能故障。