返回介绍

11 Spring Boot 整理大纲与数据结构实战

发布于 2024-07-13 17:49:55 字数 14484 浏览 0 评论 0 收藏 0

1、springboot概述

springboot介绍
springboot的核心功能
springboot的优势

2、springboot快速入门

创建Maven工程
添加SpringBoot的启动器
编写SpringBoot引导类
编写Controller
测试

3、springboot原理分析

起步依赖原理分析
	分析spring-boot-starter-parent
	分析spring-boot-starter-web

SpringBoot配置文件类型

SpringBoot配置文件类型和作用
yml配置文件简介
yml配置文件的语法
SpringBoot配置信息的查询

配置文件与配置类的属性映射方式

使用注解@Value映射
使用注解@ConfigurationProperties映射

springboot整合Junit

添加Junit的启动器
编写测试类
控制台打印信息

springBoot整合Redis

使用redisTemplate存取字符串

springboot整合mybatis

添加Mybatis的启动器
创建实体Bean
编写Mapper
配置Mapper映射文件
在application.properties中添加mybatis的信息
编写测试Controller

SpringBoot自动配置

@Conditional自动配置(编码案例)

SpringBoot @Enable*注解的工作原理

@EnableAutoConfiguration
@EnableAsync
	
@Enable*注解原理
	@Enable*注解其实是使用@Import注解导入固定配置类,配置类中实现具体逻辑
	配置类一般是实现了ImportSelector等接口的实现类,可以根据具体逻辑动态返回Bean
@Import
ImportSelector接口
ImportBeanDefinitionRegistrar接口
	
案例:自定义注解(使指定的包下面的Bean初始化时候打印Bean的名字)
	自定义注解
		
	配置类
		
	Bean初始化操作类
		
	测试

SpringBoot @EnableAutoConfiguration深入分析

作用
	从classpath下搜索所有META-INF目录下的spring.factories配置文件
            
	将org.springframework.boot.autoconfigure.EnableAutoConfiguration
            对应的值注入spring容器中,一般配置其他配置类
            
	当需要加载第三方或者多个配置类时,加载配置中的属性时,
            用此注解,必须建立spring.factories配置文件,进行相关配置
            
	可以进行排除
		根据类与类名
原理

事件监听流程

配置监听器
	Springappliaction.addListener(new MyListener())
	或者@Component在监听类
	或者配置文件中context.listener.classes=com.hou.MyListener来配置加载
	使用@EventListener注解在方法上,且方法的类要加入容器中
            
ApplicationContext.publishEvent():发布事件
    
    @EventListener

SpringBoot扩展分析

ApplicationContextInitializer接口
CommandLineRunner接口
ApplicationRunner接口
Banner

SpringBoot运行流程分析

运行流程(可查看SpringApplication源码)
内置Tomcat启动流程
WeChat9c3fe57f77d933616c18d92b0e56169c.jpg

SpringBoot 原理分析

SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、配置属性、日志信息等。

导入依赖坐标

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

Spring Boot 监控

SpringBoot 项目部署

/beans

描述应用程序上下文里全部的Bean,以及它们的关系

/env

获取全部环境属性

/env/{name}

根据名称获取特定的环境属性值

/health

报告应用程序的健康指标,这些值由HealthIndicator的实现类提供

/info

获取应用程序的定制信息,这些信息由info打头的属性提供

/mappings

描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系

/metrics

报告各种应用程序度量信息,比如内存用量和HTTP请求计数

/metrics/{name}

报告指定名称的应用程序度量值

/trace

提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)

SpringBoot 监控 用于管理和监控SpringBoot应用程序。

有两个角色,客户端(Client)和服务端(Server)。

SpringBoot 项目开发完毕后,支持两种方式部署到服务器:

① jar包(官方推荐)

② war包

Condition

Condition 是在Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操作。

SpringBoot是如何知道要创建哪个Bean的?比如SpringBoot是如何知道要创建RedisTemplate的?

自定义Starter

Spring Boot Actuator

Spring Boot Actuator简介
监控应用
SpringBootAdmin
索引的实现原理.png
请求URL
  • /api/v1/admin/login
请求方式
  • post
Header
header示例值必选类型说明
Authorization{{token}}string

{ "userName": "admin", "password": "123456" }

请求json字段说明
字段名必选类型说明
userNamestring用户名
passwordstring用户登录密码
成功返回示例
{
  "data": {
    "token": "xxxxx",
    "userName": "admin"
  },
  "msg": "登录成功",
  "code": 0
}
成功返回示例的参数说明
参数名类型说明
dataobject
tokenstringtoken,后续接口置于header里
userNamestring用户名
msgstring接口描述
codestring0为成功
备注

登录接口的header不需要Authorization

简要描述
  • 用户退出登录
请求URL
  • /api/v1/admin/logout
请求方式
  • post
Header
header示例值必选类型说明
Authorization{{token}}string
成功返回示例
{
  "code": 0,
  "data": null,
  "msg": "退出登录成功"
}
成功返回示例的参数说明
参数名类型说明
dataobject
msgstring接口描述
codestring0为成功 |

上传图片

请求Body参数
参数名示例值必选类型说明
filefile选择的文件,formData上传
成功返回示例
[
    {
        "hash":"xxx",
        "key":"xx.png",
        "url":"http://xx.xx.top/xx.png"
    }
]
成功返回示例的参数说明
参数名类型说明
hashstring
keystring
urlstring图片的地址
请求Query参数
参数名示例值必选类型说明
page1number当前页,默认1开始
pageSize20number当前页数,默认20
titlestring标题搜索,默认空
categoriesstring分类搜索,默认空
tagsstring多选用英文逗号隔开【React,ES7,Vue】默认空
status0string文章状态0=全部,1=启用,2=停用
publishStatus0string发布状态0=全部,1=已发布,2=未发布
createStartTimenumber10位时间戳
createEndTimenumber10位时间戳
updateStartTimenumber10位时间戳
updateEndTimenumber10位时间戳
成功返回示例的参数说明
参数名类型说明
dataobject
pagestring当前页
pageSizestring当前页数
totalCountstring总数
listarray
list.tagsarray标签
list.tagsstring标签
list.viewsstring浏览数
list.commentstring评论数
list.likestring点赞数
list.collectstring收藏数
list.isCommentstring是否开启评论
list.isLikestring是否开启点赞
list.isCollectstring是否开启收藏
list.isRewardstring是否开启打赏
list.statusstring文章状态1=启用,2=停用
list.publishStatusstring发布状态1=已发布,2=未发布
list.sortstring排序
list.createTimenumber创建时间-10位时间戳
list.updateTimenumber修改时间-10位时间戳
list._idstringObjectid
list.contentstring文章内容
list.titlestring文章标题
list.introductionstring简介
list.coverstring封面
list.categoriesstring分类
msgstring
codestring

修改文章状态

请求方式
  • put
请求json字段说明
字段名必选类型说明
idstring标签id,url中必填
statusnumber1=启用,2=停用
成功返回示例
{
  "msg": "文章启用成功",
  "data": null,
  "code": 0
}
成功返回示例的参数说明
参数名类型说明
msgstring接口描述
dataobject
codestring0为成功

分类列表

请求Query参数
参数名示例值必选类型说明
page1number页码默认1
pageSize20number每页大小默认20
name技术string分类名称
成功返回示例的参数说明
参数名类型说明
dataobject
pagestring页码
pageSizestring每页数量
totalCountstring总数
listarray
list.createTimestring创建时间
list.updateTimestring修改时间
list.articleNumstring文章数量
list._idstringObjectId
list.namestring分类名称
msgstring接口描述
codestring0为成功

修改分类

请求URL
  • /api/v1/categories/:id
请求方式
  • put

1、什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?

数据库: 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了 具有特定格式的数据。

数据库管理系统: DataBaseManagement,简称DBMS。 数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以 对数据库当中的数据进行增删改查。

    常见的数据库管理系统:
            MySQL、Oracle、MS SqlServer、DB2、sybase等....

SQL:结构化查询语言 程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL 语句,最终来完成数据库中数据的增删改查操作。

    SQL是一套标准,程序员主要学习的就是SQL语句,这个SQL在mysql中可以使用,
    同时在Oracle中也可以使用,在DB2中也可以使用。

三者之间的关系? DBMS--执行--> SQL --操作--> DB

先安装数据库管理系统MySQL,然后学习SQL语句怎么写,编写SQL语句之后,DBMS 对SQL语句进行执行,最终来完成数据库的数据管理。

2、安装MySQL数据库管理系统。

第一步:先安装,选择“经典版”

第二步:需要进行MySQL数据库实例配置。

需要注意的事项?

端口号:

    端口号port是任何一个软件/应用都会有的,端口号是应用的唯一代表。
    端口号通常和IP地址在一块,IP地址用来定位计算机的,端口号port
    是用来定位计算机上某个服务的/某个应用的!
    在同一台计算机上,端口号不能重复。具有唯一性。

    mysql数据库启动的时候,这个服务占有的默认端口号是3306
    这是大家都知道的事儿。记住。

字符编码方式?

    设置mysql数据库的字符编码方式为 UTF8
    一定要注意:先选中第3个单选按钮,然后再选择utf8字符集。

服务名称?

    默认是:MySQL
    不用改。

选择配置环境变量path:

    如果没有选择怎么办?你可以手动配置
    path=其它路径;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin

mysql超级管理员用户名不能改,一定是:root 你需要设置mysql数据库超级管理员的密码。 我们设置为123456

3、MySQL数据库的完美卸载!

第一步:双击安装包进行卸载删除。
第二步:删除目录:
	把C:\ProgramData下面的MySQL目录干掉。
	把C:\Program Files (x86)下面的MySQL目录干掉。

4、看一下计算机上的服务,找一找MySQL的服务在哪里?

计算机-->右键-->管理-->服务和应用程序-->服务-->找mysql服务

MySQL的服务,默认是“启动”的状态,只有启动了mysql才能用。

默认情况下是“自动”启动,自动启动表示下一次重启操作系统的时候 自动启动该服务。

可以在服务上点击右键:
	启动
	重启服务
	停止服务
	...

还可以改变服务的默认配置:
	服务上点击右键,属性,然后可以选择启动方式:
		自动(延迟启动)
		自动
		手动
		禁用

mysql安装了,服务启动了,怎么使用客户端登录mysql数据库呢?

使用bin目录下的mysql.exe命令来连接mysql数据库服务器

mysql常用命令:

退出mysql :exit

查看mysql中有哪些数据库?
	show databases; 
	注意:以分号结尾,分号是英文的分号。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
mysql默认自带了4个数据库。
怎么选择使用某个数据库呢?
	mysql> use test;
	Database changed
	表示正在使用一个名字叫做test的数据库。

怎么创建数据库呢?
	mysql> create database bjpowernode;
	Query OK, 1 row affected (0.00 sec)

	mysql> show databases;
	+--------------------+
	| Database           |
	+--------------------+
	| information_schema |
	| bjpowernode        |
	| mysql              |
	| performance_schema |
	| test               |
	+--------------------+

查看某个数据库下有哪些表?
	mysql> show tables;

注意:以上的命令不区分大小写,都行。

查看mysql数据库的版本号:
mysql> select version();
	+-----------+
	| version() |
	+-----------+
	| 5.5.36    |
	+-----------+

查看当前使用的是哪个数据库?
mysql> select database();
+-------------+
| database()  |
+-------------+
| bjpowernode |
+-------------+

关于SQL语句的分类?

SQL语句有很多,最好进行分门别类,这样更容易记忆。

分为:

DQL:

    数据查询语言(凡是带有select关键字的都是查询语句)
    select...

DML:

    数据操作语言(凡是对表当中的数据进行增删改的都是DML)
    insert delete update
    insert 增
    delete 删
    update 改

    这个主要是操作表中的数据data。

DDL:

    数据定义语言
    凡是带有create、drop、alter的都是DDL。
    DDL主要操作的是表的结构。不是表中的数据。
    create:新建,等同于增
    drop:删除
    alter:修改
    这个增删改和DML不同,这个主要是对表结构进行操作。

TCL:

    是事务控制语言
    包括:
            事务提交:commit;
            事务回滚:rollback;

DCL:

    是数据控制语言。
    例如:授权grant、撤销权限revoke....

单表的查询

select 
	...
from
	...
where
	...
group by
	...
having
	...
order by
	...

以上关键字只能按照这个顺序来,不能颠倒。

执行顺序?

1. from
2. where
3. group by
4. having
5. select
6. order by

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文