腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第1张图片

 

前言

个人认为,springboot是随着Spring4.0出生的, 他的出现,目的是为了解决Spring这么多年来的发展导致本身的笨重、各类繁琐及与第三方框架整合的配置文件,对于码农或项目团队来说,是不希望见到的。因此springboot的出现是为了解决spring多年发展带来的弊端。

springboot的优点:

  1. 配置简单了
  2. springboot内嵌了servlet容器,降低了对环境的要求,机器有java运行环境,可以将项目打包成jar包,通过java命令 java -jar ****.jar 来执行。
  3. 快速整合第三方框架,无需配置文件
  4. 解决了Spring的弊端
  5. 最最最最最最大的优点是,代码少了、配置文件少了、不需要对第三方框架烦恼了、项目精简了,对整个团队的开发及维护来说,更大的节约了成本。

Spring 框架概述

如果你是 Java 开发人员,那么你多半听说过 Spring 框架,甚至可能在项目中使用过这一框架。Spring 框架主要起源于一个依赖注入容器,但它远不止于此。

Spring 之所以流行,是因为:

  • Spring 的依赖注入方法支持编写可测试的代码
  • 强大且易用的数据库事务管理能力
  • Spring 非常容易与其它 Java 框架集成,如 JPA/Hibernate ORM、Struts、JSF等。
  • 使用前沿的 MVC 框架构建 Web 应用

Spring 除了框架之外,还有很多姊妹项目可以助力构建满足现代业务需求的应用程序:

  • Spring Data:为访问关系型数据库或 NoSQL 数据库提供便利。
  • Spring Batch:强大的批处理框架。
  • Spring Security:为安全应用而生的强健的安全框架。
  • Spring Social:支持整合社区网络,比如 Facebook、Twitter、LinkedIn、Github 等。
  • Spring Integration:企业级集成模型的实现,使用轻量级的消息传递和声明式适配器与其他企业应用集成。

在本文中,我们将介绍:

系统介绍Spring Boot2的两个主要技术:

  1. 一方面是极速开发一个Web应用系统,详细介绍Spring Boot框架、Spring MVC、视图技术、数据库访问技术,并且介绍多环境部署、自动装配、单元测试等高级特性;
  2. 另一方面, 当系统模块增加,性能和吞吐量要求增加时,如何平滑地用Spring Boot实现分布式架构,包括使用Spring实现RESTful架构,在Spring Boot框架下使用Redis、MongoDB、 ZooKeeper、 Elasticsearch 等流行技术,使用Spring Session 实现系统水平扩展,使用Spring Cache提高系统性能。

内容

第1章Java EE简介

要应用SpringBoot技术,并不一定需要先从Spring技术开始,更不需要了解JavaEE。然而,稍微了解Java EE和Spring技术,对Spring Boot会有更深的理解。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第2张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第3张图片

 

第2章Spring Boot基础

本章首先介绍如何安装Spring Boot应用的开发环境,也会详细介绍Maven工具的安装、配置和使用。最后会再次介绍Spring的历史、IoC 容器和Spring常用的注解。

需要免费领取这份腾讯T7架构师至今还在钻研的《Spring Boot 2从构建小系统到架构分布式大系统》的朋友,麻烦转发小编这篇文章,并关注我后私信【666】三字即可。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第4张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第5张图片

 

第3章MVC框架

在Spring框架和Spring Boot中,最常用的技术就是MVC框架。试图讲清楚Spring MVC的内容,有可能需要一本书来讲述。本章将介绍MVC中最实用的部分,一些不常用的技术,或者过时的技术将不做介绍。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第6张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第7张图片

 

第4章视图技术

本章介绍MVC中的后端视图技术,一种是后端模板引擎Beetl,用于渲染模板;另外一种是JSON序列化技术Jackson。

本章选择介绍Beet,Beetl 普遍应用在国内顶尖互联网公司、大中型企业,具有易使用和性能良好等特点,有非常好的国内口碑。

对于JSON的序列化和反序列化技术,也有很多工具可以采用,如国内的Fastison,国外的Jackson、Gson。 Jackson 是Spring Boot内置的,也是Spring Boot相关很多开源产品内置的序列化工具,与Beetl一样,同样易使用、性能良好,堪称JSON首选工具。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第8张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第9张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第10张图片

 

第5章数据库访问

本章介绍Spring JDBC Template和BeetISQL两种数据库访问方式,JDBC Template是Spring自带的,在JDBC的基础上做了一定封装,而BeetISQL是笔者研发的,除了封装了JDBC操作,还带有SQL管理、跨数据库平台支持等企业功能。它们的共同点都是以SQL为核心。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第11张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第12张图片

 

第6章Spring Data JPA

本章将介绍Spring Data JPA,它在JPA提供的简单语义上做了一定的封装,满足CRUD查询。同时,也会介绍SpringData,它为Spring框架对访问SQL和NoSQL数据库提供了一致的方式。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第13张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第14张图片

 

第7章Spring Boot 配置

在SpringBoot出现之前,Spring项目会存在多个配置文件,比如web.xml,配置Spring的多个application-xxx.xml,xxx代表配置Spring 的某一个 功能,如application-datasource.xml、application-mvc.xml。应用自身也需要多个配置文件,还需要编写代码去读取这些配置文件的参数。现在Spring Boot简化了Spring 配置的管理和读取,只需要一个 application.properties,并提供了多种读取配置文件的方式。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第15张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第16张图片

 

第8章部署Spring Boot应用

这一章讲述如何部署Spring Boot应用,Spring Boot可以以jar方式运行,也可以部署到支持Servlet3.0 或者支持较早的Servlet2.5的Web服务器上。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第17张图片

 

第9章Testing单元测试

单元测试概念 以及 Spring Boot 下的单元测试支持,包括 MVC 单元测试、Mock 测试,以及面向数据库应用的测试方案

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第18张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第19张图片

 

第10章REST

本章介绍Restful 风格接口,并通过Spring Boot 来实现RESTful,最后会介绍Swagger工具,来增强RESTful的维护开发。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第20张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第21张图片

 

第11章MongoDB

MongoDB 的安装和使用 然后介绍Spring Boot 如何集成 MongoDB, 同时还介绍了如何用 Mongo Template 访问MongoDB

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第22张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第23张图片

 

第12章Redis

介绍 Redis 服务器的安装和使用, Redis 常用的数据结构和操作命令。然后介绍 SpringBoot 如何集成 Redis ,如何使用 RedisTemplate 来操作 Redis 。本章后半部分深入介绍了 RedisTemplate提供的序列化机制。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第24张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第25张图片

 

第13章Elasticsearch

Elasticsearch 的安装和使用, Elasticsearch 既具有全文搜索功能,也能像MongoDB 那样,具备NoSQL 的功能。本章介绍通过REST Spring Data 两种方式访问 Elasticsearch

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第26张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第27张图片

 

第14章Cache

Spring Boot Cache ,并重点介绍 Redis作为分布式缓存的实现。在此基础上,改进了 Redis分布式缓存,通过较少的代码实现了一个具备一二 级缓存的技术方案

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第28张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第29张图片

 

第15章Spring Sessi on

SpringBoot应用通常会部署在多个Web服务器上同时提供服务,这样做有很多好处:

  • 单个应用宕机不会停止服务,升级应用可以逐个升级而不必停止服务。
  • 提高了应用整体的吞吐量。

我们称这种部署方式为水平扩展,前端通过Nginx提供反向代理,会话管理可以通过SpringSession,使用Redis来存放Session。 部署Spring Boot应用到任意一-台 Web服务器上,从而提高了系统可靠性和可伸缩性。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第30张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第31张图片

 

第16章Spring Boot和ZooKeeper

本章介绍 ZooKeeper 的安装和使用,对领导选取、分布式锁和服务注册三个常用功能做了重点描述,并在 Spring Boot 应用中采用 Curator 来完成这 三个功能。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第32张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第33张图片

 

第17章监控Spring Boot应用

Spring Boot 提供了内置监控功能,使得用户通过 HTTP 请求就能知晓服务器的健康状态,如数据源是否可用、 NoSQL 服务是否可用、最近的 HTTP 访问的内容等监控信息。本章讲述了线程、内存、在线日志、 HTTP 访问、 RequestMapping 等常用监控功能。其中还讲述通过 dump 线程技和内存来解决 Spring Boot 应用中的一些性能故障。

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第34张图片

 

腾讯T7架构师至今还在钻研的SpringBoot从构建小系统到架构大系统_第35张图片

 

总结

需要领取这份腾讯T7大神一直在研究的这份——《Spring Boot 2精髓》的朋友,麻烦转发小编这篇文章,并关注我后私信【666】三字即可。

Spring风靡多年,Spring Boot 在最近几年微服务框架浪潮下更是出尽风头,本书作者由浅入深地把Spring Boot 2.0各种特性阐述得淋漓尽致,不管你是Spring Boot新手还是老司机都值得一读。Java Web后端也好,App 后台也罢,甚至独立后台应用,等等,Spring Boot都是你不可或缺的高效率工具。

或许正在观看此文的某些人已经使用过Spring Boot并节省了50%以上的代码。

你可能感兴趣的:(数据库,单元测试,分布式,spring,java)