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