01 官方文档
02 基础入门
一、spring的能力
Microservices 微服务
Reactive 响应式编程
Cloud 分布式
Web apps
Serverless 无服务 函数式服务 上云实时计费
Event driven 事件驱动 基于事件构建一个实时数据流 响应式 占用少资源
Batch 批处理
spring框架:配置地狱 —— 简化:springboot
二、spring5的重大升级
1、响应式编程 (原servlet 现reactive )
异步数据流 响应式开发应用 少量资源处理大量并发
2、源码实现的变化
Spring5基于jdk8实现 新特性(接口的默认实现,适配器模式不再需要)
三、SpringBoot是什么?
Boot 开始,开机
整合spring生态圈的一站式框架、高层框架
底层是spring
少量资源完成高吞吐开发
1、作用:
快速帮我们创建出生产级别的spring应用,让开发变得简单
简化spring开发的脚手架
2、优点:
创建独立Spring应用
嵌入式的内部容器 tomcat、jetty
自动starter依赖,简化构建配置(以前需要导jar包、控制版本、版本不对也不行,starter是启动器,保证jar包导入和版本控制)
自动配置Spring以及第三方功能(包括redis、sql等)
提供生产级别的监控、健康检查及外部化配置(应用、运维检查)
生产级别的应用配置(无代码生成、无需编写XML)只需要告诉运维需要修改什么
3、缺点:
版本更新迭代快(3.0强制jdk17) 版本帝
封装太深,内部原理复杂,不容易精通
03 基础入门 - springboot的大时代背景
一、微服务
14年就提出了
模块拆分、独立进程、轻量级通信、自动部署、多种技术百家争鸣
二、分布式的问题
服务发现机制
负载均衡机制
容错
配置机制
服务监控 应用的健康
链路追踪
日志
任务调度(定时任务 一个执行还是单独执行 并行还是串行)
三、分布式的解决
SpringBoot + springCloud (网状整合 响应式数据流)
四、云原生(与运维关系比较大)
原生开发的应用上云 cloudnative
服务自愈
弹性收缩 流量高峰期间自动扩充
服务隔离 互不影响
自动化部署
灰度发布 部分服务器升级
流量治理 根据服务器性能
04 springboot官方文档架构
https://docs.spring.io/spring-boot/docs/current/reference/html/index.html
05 基础入门-springboot helloworld
一、环境要求
Maven 3.3及以上
Java 1.8及以上
二、基本步骤
1、创建一个maven项目
2、在pom文件中引入springboot依赖和web-starter
3、编写启动类 使用@SpringbootApplication注解标明该项目为springboot项目
4、编写controller
5、启动
6、可新建application.properties文件修改springboot默认配置值及各种属性
7、可引入打包jar插件,package打包后直接cmd执行jar (java -jar xxxxxx.jar)
8、直接访问即可
注意:如果命令不成功,可能是窗口编码和操作系统编码不一致导致
cmd 出现"The system cannot write to the specified device"
解决:chcp查看窗口编码 -- 65001 表示是UTF-8格式
但是操作系统的编码为 936 简体中文
即:直接在cmd窗口中,执行chcp 936 即可
(另外:cmd需要取消快速编辑模式)
springboot为我们的开发配置部署都做了很大的简化
06 依赖管理和自动配置特性 =======================================
一、依赖管理
1、父项目
父项目一般用来做依赖管理,子项目继承父项目则以后不需要再写版本号
其中properties属性几乎声明了所有开发中常用的依赖的版本号 —— 自动版本仲裁机制
(一般不需要我们自己写版本号,但是引入非版本仲裁的jar需要些版本号)
2、自定义修改版本号:
在pom文件中定义properties文件重写key
3、starter
springboot的官方starter:spring-boot-starter-*
*代表场景,只要引入该场景starter,则自动引入该场景相关的所有starter
https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters
可自定义stater(不要命名重复 *-spring-boot-starter 第三方场景启动器)
所有场景启动器最底层的依赖 —— spring-boot-starter(最核心)
二、自动配置
1、自动配置tomcat
1)引入依赖 —— 依赖管理
2)配置tomcat
2、自动配置springmvc
characterEncodingFilter 解决中文乱码的字符编码拦截器
Dispatcherservlet
viewResolver 视图解析器
multipartResolver 文件上传的解析器
3、自动配置好默认包结构
不用自己配置包扫描
主程序所在包及其子包的所有组件都默认扫描到
若需要指定扫描包:@SpringBootApplication(scanBasePackages = "com.yoyo")或者拆分成三个注解@componentScan修改
4、各种配置拥有默认值
修改:application.properties
默认配置最终都是映射到某一个类上的(比如MultipartProperties),在容器中创建对象
5、按需加载所有自动配置项
引入哪个场景则这个场景的自动配置才开启
springboot的所有自动配置功能都在spring-boot-autoconfigure 包里面
07 底层注解——@Configuration详解



