Spring 能做什么

Spring 能做什么

Spring 的能力

整个 Spring 全家桶可以做什么?

Spring 生态

基本上无所不包,甚至还包括 Spring for Android,Spring shell,真的,把 Spring 学透,基本上 Web 方面的需求都能搞定了,甚至 Web 以外的需求也能搞定

Spring Boot 的作用就是整合了 Spring 全家桶中的多个子项目(一个子项目就是一个场景下的解决方案),避免陷入复杂的配置问题,程序员专注于业务逻辑即可。

Spring 全家桶中的各个子项目相当于零件,你想用电脑,不需要自己组装零件,Spring Boot 直接给你一台电脑,你直接开始用就行了。

Spring5 重大升级

响应式编程

有两套技术栈,一套是 Servlet stack,servlet 技术栈,这是基于原生 Servlet 的技术栈,也就是老的技术栈,一套是全新的 Reactive stack,Reactive 技术栈,本课程也是基于这两种方式,进行的分类,先讲 Servlet stack,再讲 Reactive stack

内部源码设计

比如 Java8 开始,接口开始有默认实现,这样适配器模式就不需要了

PS:什么是适配器模式,A 接口里面又 12345 个方法,B 只想实现 12 方法,C 只想实现 34 方法,没有适配器模式的话,就只能在实现想要的实现的方法之后,其他方法就给个空实现,适配器模式就是在中间加一层,用 A' 实现 A,方法全都给空实现,然后 BC 继承 A',注意是继承不是实现,然后重写自己需要的方法即可,这就是适配器模式。

PS:所以说 JDK 作为 Java 的基础,稍微有点风吹草动对整个生态的影响都是巨大的

为什么要用 Spring Boot

快速地创建生产级别的应用

Spring Boot 的优点

SpringBoot 是整合 Spring 技术栈的一站式框架

SpringBoot 是简化 Spring 技术栈的快速开发脚手架

Spring Boot 的缺点

时代背景

微服务

其中很重要的两点

分布式

PS:微服务是一种架构风格软件架构,分布式是一种部署方式,

分布式的难点 - 单体应用不会遇到的业务场景 - 一个全新的世界

分布式的解决

Spring Boot + Spring Cloud + Spring Cloud Data Flow

Spring Boot 创建非常多的微服务模块,Spring Cloud 把他们互联互调起来,节点之间的数据交换,使用 Spring Cloud Data Flow,做成响应式数据流。

云原生 - cloud native

云其实是一个部署概念,上面的微服务分布式的软件开发好了,如何部署到云上,原生开发的应用,如何部署到云上,

云上的困难,更多的是服务器运维的问题。

上云的困难

上云的解决

大厂学院 的课程推销:拥抱云原生

如何学习 Spring Boot

学习技术应该以官方文档为主,本课程也是从官方文档中来的,真的是惊喜,这不就相当于带着我从官方文档开始学吗!!!!太好了,我以后也要找这种从官方文档来的教学视频!!

[Spring Boot 官方信息](Spring Boot)

GA:general availability 是官方开始推荐广泛使用了版本,也就是稳定版

官网文档架构

本视频使用 2.3 版本学习,文档地址

地址 介绍
Legal Legal information.
法律信息,我们不用管
Documentation Overview About the Documentation, Getting Help, First Steps, and more.
文档概览,我感觉这像是一个文档内容目录,想要找什么可以在这里直接定位
Getting Started Introducing Spring Boot, System Requirements, Servlet Containers, Installing Spring Boot, Developing Your First Spring Boot Application
入门,对应本课程的基础入门篇
Using Spring Boot Build Systems, Structuring Your Code, Configuration, Spring Beans and Dependency Injection, DevTools, and more.
使用 Spring Boot,对应本课程的基础入门
Spring Boot Features Profiles, Logging, Security, Caching, Spring Integration, Testing, and more.
Spring Boot 的一些高级特性,对应本课程的核心功能篇
Spring Boot Actuator Monitoring, Metrics, Auditing, and more.
跟生产对接的监控模块,单独列出,也是核心功能篇的内容
Deploying Spring Boot Applications Deploying to the Cloud, Installing as a Unix application.
Spring Boot 平台部署,核心功能篇
Spring Boot CLI Installing the CLI, Using the CLI, Configuring the CLI, and more.
用命令行的方式操作管理 Spring Boot,有需要再学
Build Tool Plugins Maven Plugin, Gradle Plugin, Antlib, and more.
Spring Boot 的构建插件
“How-to” Guides Application Development, Configuration, Embedded Servers, Data Access, and many more.
Spring Boot 的小技巧,特别推荐

参考文档的附件

地址 介绍
Application Properties Common application properties that can be used to configure your application.
应用配置项信息,非常实用,找配置项就在这里找
Configuration Metadata Metadata used to describe configuration properties.
IDE 的插件开发人员在开发 Spring Boot 相关插件的时候用得到,跟应用开发关系不大
Auto-configuration Classes Auto-configuration classes provided by Spring Boot.
自动化配置类列表,告诉我们有哪些自动化配置
Test Auto-configuration Annotations Test-autoconfiguration annotations used to test slices of your application.
测试的时候用到的自动配置注解
Executable Jars Spring Boot’s executable jars, their launchers, and their format.
Dependency Versions Details of the dependencies that are managed by Spring Boot.
Spring Boot 的依赖的默认版本号,就是 Starter 的内部的依赖的版本号

这个课程是不可能把官方文档讲完了,老师讲个大概,一些没有覆盖到的地方,我们自己去看

Spring Boot 发版真的是频繁,the project release notes section,列出各版本的升级日志,告诉我们从一个版本升级到另一个版本改了哪些东西