深入浅出学习Spring Boot架构,掌握Spring Boot2精髓

前言

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,还对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应用中的一些性能故障。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值