写点什么

阿里 p8 架构师耗时一年整理 SpringBoot,从构建小系统到架构大系统

  • 2023-05-18
    湖南
  • 本文字数:2138 字

    阅读完需:约 7 分钟

Java 的各种开发框架发展了很多年,影响了一代又一代的程序员,现在无论是程序员,还是架构师,使用这些开发框架都面临着两方面的挑战。

  1. 一方面是要快速开发出系统,这就要求使用的开发框架尽量简单,无论是新手还是老手都能快速上手,快速掌握页面渲染、数据库访问等常用技术。也要求开发框架能尽量多地集成第 方工具,以便信手拈来。最后,还希望在开发调试过程中,方便代码更改后能快速重启。

  2. 另外一方面,当系统模块增加,用户使用量增加时,面对这样的挑战,系统拆分成为新的架构,程序员和架构师当然不希望换掉己有的开发框架,希望能由小而美的系统过渡到大而强的分布式系统。


环顾当前 Java 开源世界中的流行技术框架,能同时胜任这项工作的微乎其微, Play 和 ActFramework 是不错的选择,国内的 Nutz JFinal 的口碑也不错。但能同时满足快速开发和分布式系统架构的框架,还是群众基础最好、功能最全、基于 Spring 技术的 Spring Boot 框架


限于文章篇幅原因,只能以截图的形式展示出来,有需要的小伙伴 点击这里凭本文截图即可获取!

目录概览

Java EE 简介

Java EE,指出其缺点,引入了流行的 Spring ,同时也说明 Spring 经过这么多年发展后暴露的一些缺点,从而引出 Sprin Boot ,井以两个简要例子作为说明


Spring Boot 基础

Spring Boot 应用的开发环境做了说明,包括 Java 开发环境的安装和配置, Maven 的安装和配置,设置国内仓库镜像,还有常用的 Maven 命令。本章最后介绍 Spring 历史以及现有开发团队,并介绍 Spring 框架的 AOP Iro 两个核心技术


MVC 框架

介绍 MV 技术,前半部分重点介绍 URL 映射到 Controller ,以及映射到 Controller 方法的参数、参数类型转化、参数验证。后半部分简单介绍 MVC 中的视图技术 Freemaker Beet! 以及 Ja on 序列化技术。 Beet! Jackson 将在第 章详细介绍。


视图技术

开源技术 Beeti 后端模板引擎,作为国内流行的模板引擎之 ,具有简单易学、功能性能强大、支持 MVC 分离开发等特点。另外一部分详细介绍 Jackson JSON 序列化技术。 Jackson 不仅作为 SpringMVC 中的 JSON 默认工具,也是 Spring Boot 分布式技术中常采用的 JSON 序列技术。


数据库访问

以 SQL 为中心的数据库访问工具 Beet!SQL ,这是另外一款流行 Dao 工具, SQL 在 markdown 文件中管理,内置增删改查、轻量级 ORM 功能、代码生成、主从支持、跨多种数据库等特点,适合那些更喜欢以 SQL 方式访问数据库的开发者。


Spring Data JPA

以面向对象为中心的数据库访问工具 Spring Data JPA 本章由易到难,先从 Spring Data 提供的功能入手,介绍如何完成数据库简单的增删改查功能,然后引入 JPA 来解决应用中不可避免 复杂 SQL 查询。


Spring Boot 配置

Spring Boot 高级特性 如常用的 Sprin Boot 的配置、日志配置、应用配置的读取、 Sprin Boot 自动装配技术和 Sprin Boot Starter 实现。


部署 Spring Boot 应用

如何部署 Spring Boot 应用,包括可执行 jar ,以及通过 war 部署到应用服务器上 应用经常面对多个环境,如开发、测试,还有准线上、线上,以及多个 Demo 环境, SpringBoot 提供 Profile 来实现多环境部署。


Testing 单元测试

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


REST

RESTful 风格的架构,然后介绍 Spring Boot 如何集成以提供 REST 服务,使用 RestTemplate 调用 REST 服务 本章最后也重点介绍了 Swagger 3.0 技术,以方便 REST 接口的交流、开发和测试。


MongoDB

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


Redis

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


Elasticsearch

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


Cache

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


Spring Session

Spring Boot 应用水平扩展,需实现无会话状态技术, Spring Session 提供了分布式会话管理,本章介绍了 Nginx 作为反向代理的内容,以及 Spring Session Redis 实现及其源码分析。


Spring Boot 和 ZooKeeper

Spring Boot 应用水平扩展技术必然带来分布式协调要求, ZooKeeper 是一个广泛使用的分布式协调器。本章介绍 ZooKeeper 的安装和使用,对领导选取、分布式锁和服务注册三个常用功能做了重点描述,并在 Spring Boot 应用中采用 Curator 来完成这 三个功能。


监控 Spring Boot 应用

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


限于文章篇幅原因,就展示到这里了,有需要的小伙伴 点击这里凭本文截图即可获取!

用户头像

还未添加个人签名 2021-07-28 加入

公众号:该用户快成仙了

评论

发布
暂无评论
阿里p8架构师耗时一年整理SpringBoot,从构建小系统到架构大系统_Java_做梦都在改BUG_InfoQ写作社区