SpringBoot2
Java_SSM入门
SpringBoot2 入门
基础篇(SSM复习拾遗)
SpringBoot入门程序开发
SpringBoot是用来简化Spring应用的初始搭建以及开发过程
Spring程序与SpringBoot程序对比

基于阿里云创建项目
基于阿里云创建项目,地址:https://start.aliyun.com

手工创建项目
手工创建项目(手工导入坐标)
手工创建项目(手工制作引导类)

Idea中隐藏指定文件或指定类型文件
- Setting -> File Types -> Ignored Files and Folders
- 输入要隐藏的文件名,支持*号通配符
- 回车确认添加
parent
- parent
- 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
- parent各版本间存在着诸多坐标版本不同
starter
starter
- spring-boot-starter-web.pom
- SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的
开发SpringBoot程序需要导入坐标时通常导入对应的starter,通常一个starter会依赖多个坐标,使用starter可以起到快速配置的作用,达到简化配置的目的
引导类
- SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目。
- SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean
内嵌tomcat
- Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已全面切换为Jetty
内置服务器
- 内嵌tomcat服务器是SpringBoot辅助功能之一
- 内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理
- 变更内嵌服务器思想是去除现有服务器,添加全新的服务器
- tomcat(默认) apache出品,粉丝多,应用面广,负载了若干较重的插件
- Jetty 更轻量级,负载性能远不及tomcat
- undertow undertow,负载性能勉强跑赢tomcat
基础配置
复制工程
原则
- 保留工程基础结构
- 抹掉原式工程痕迹
步骤
- 在工作空间中复制对应工程,并修改工程名称
- 删除与Idea相关配置文件,仅保留src目录与pom.xml文件
- 修改pom.xml文件中的artifactId与新工程/模块名相同
- 删除name标签
- 保留备份工程供后期使用
SpringBoot中文文档:https://geekdoc.top/docs/languages/java/spring/spring-boot/2.5.5/reference/html/index.html
配置相关参考文档中:Application.Properties
若properties配置文件,yml配置文件,yaml配置文件同时存在,则相同的依次覆盖,不同的全都生效
yaml语法规则


yaml数据读取

SpringBoot整合JUnit
若test中@SpringBootTest注解的类和工程的引导类包结构位置不匹配,可以使用@ContextConfiguration注解指定测试的引导类,或者使用@SpringBootTest中的classes属性指定引导类

SpringBoot整合MyBatisPlus
可以使用阿里云创建项目,里面有mp的选项
为方便调试可以开启MyBatisPlus的日志

SpringBoot整合Druid
指定数据源类型

变更Druid的配置方式(此方式需要在pom文件中引用Druid的SpringBoot的Starter包)

基于SpringBoot的SSMP整合案例
业务层开发
- Service层接口定义域数据层接口定义具有较大区别,不要混用
- selectByUserNameAndPassword(String username,String password);
- login(String username,String password);
业务层开发——快速开发

表现层消息一致性处理
设计表现层返回结果的类,用于后端与前端进行数据格式统一,也称为前后端数据协议


前后端协议联调

分页功能





条件查询功能






SpringBoot 运维实用篇
打包与运行
SpringBoot项目快速启动步骤


SpringBoot打包插件

可执行jar包结构

jar包描述文件(MANIFEST.MF)

命令行启动常见问题及解决方案

配置高级
临时属性配置

属性加载优先级

配置文件分类

自定义配置文件




多环境开发

多环境份文件配置




多环境开发控制


日志
日志作用
- 日志(log)作用
- 编程期调试代码
- 运营期记录信息
- 记录日常运行重要信息(峰值流量,平均响应时间)
- 记录引用报错信息(错误堆栈)
- 记录运维过程数据(扩容,宕机,报警)




快速创建日志对象

日志输出格式控制



SpringBoot 开发实用篇
热部署
启动热部署



自动启动热部署


热部署范围设置


关闭热部署

可以使用更高级别的属性加载覆盖掉application.yml中的配置,以保证一定不会开启热部署

配置高级
@ConfigurationProperties


@EnableConfigurationProperties

宽松绑定



常用计量单位


数据校验




测试
加载测试专用属性

加载测试专用配置

web环境模拟测试






数据层测试事务回滚

测试用例数据设定

数据层解决方案
SQL
现有数据层解决方案技术选型

数据源解决方案
- Springboot提供了3中内嵌的数据源对象供开发者选择
- HikariCP
- Tomcat提供DataSource
- Commons DBCP


持久化解决方案



内嵌数据库(H2)








NoSQL
- 市面上常见的NoSQL解决方案
- Redis
- Mongo
- ES
Redis
- Redis是一款key-value存储结构的内存级NoSQL数据库
- 支持多种数据存储格式
- 支持持久化
- 支持集群











Mongodb
- Mongodb是一个开源、高性能、无模式的文档型数据库。NoSQL数据库产品中的一种,是最像关系型数据库的非关系型数据库



Mongodb基本操作





Elasticsearch(ES)
- ES是一个分布式全文搜索引擎

- 索引 倒排索引 创建文档 使用文档

注意禁用Kibana安全提示(Elasticsearch built-in security features are not enabled)



创建文档

查询文档

条件查询

删除文档

修改文档(全量修改)

修改文档(部分修改)

SpringCache
SpringCache简介

SpringCache常用注解

Mysql主从复制
介绍

实现步骤
主机设置:
- 在主设备上设置/etc/my.cnf,写入:log-bin=mysql-bin,server-id=1 保存后重启mysqld
- 新建用于从复制的用户,并赋予相应的权限
- 查看主设备的master状态: show master status;
从机设置:
在从设备上设置/etc/my.cnf,写入:server-id=2 保存后重启mysqld
设置slave:
1
change master to master_host='172.17.200.140',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000002',master_log_pos=2025;执行start slave,使用show slave status;查看从机状态
Slave_IO_State 值为 Waiting for source to send event 即为成功
注意:如果使用虚拟机,注意ip和uuid的问题。
读写分离

SpringBoot2


