SpringBoot基础篇知识点

SpringBoot基础篇知识点

一、导学

官网:https://spring.io/projects/spring-boot
在这里插入图片描述

二、入门案例

2.1、idea联网版

https://www.bilibili.com/video/BV15b4y1a7yG/?p=3&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2、官网创建版

https://www.bilibili.com/video/BV15b4y1a7yG/?p=4&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述
在这里插入图片描述

2.3、阿里云版

https://www.bilibili.com/video/BV15b4y1a7yG/?p=5&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述
在这里插入图片描述

2.4、手工制作版

https://www.bilibili.com/video/BV15b4y1a7yG/?p=6&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、隐藏文件或文件夹(联网创建比手动创建多出来git等文件)

在这里插入图片描述
在这里插入图片描述

四、入门案例解析

4.1、parent

https://www.bilibili.com/video/BV15b4y1a7yG?p=8&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述

4.2、starter

在这里插入图片描述
在这里插入图片描述

4.3、引导类

https://www.bilibili.com/video/BV15b4y1a7yG?p=10&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述

4.4、辅助功能(内嵌Tomcat)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.5、Rest风格简介

在这里插入图片描述
在这里插入图片描述

4.6、Restful入门案例

https://www.bilibili.com/video/BV15b4y1a7yG?p=13&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  在使用springmvc框架的时候,在处理json的时候需要用到spring框架特有的注解@ResponseBody或者@RestController注解, 这两个注解都会处理返回的数据格式,使用了该类型注解后返回的不再是视图,不会进行转跳,而是返回json或xml数据格式,输出在 页面上 。
  那么,这两个注解在使用上有什么区别呢?
  @ResponseBody,(1)一般是使用在单独的方法上的,需要哪个方法返回json数据格式,就在哪个方法上使用,具有针对性。(2)一般是使用在参数上,将json格式的数据转为java对象,并注入对应参数中。
  @RestController,一般是使用在类上的,它表示的意思其实就是结合了@Controller和@ResponseBody两个注解,如果哪个类下的所有方法需要返回json数据格式的,就在哪个类上使用该注解,具有统一性;需要注意的是,使用了@RestController注解之后,其本质相当于在该类的所有方法上都统一使用了@ResponseBody注解,所以该类下的所有方法都会返回json数据格式,
输出在页面上,而不会再返回视图。
https://jingyan.baidu.com/article/624e7459069f4034e8ba5a87.html

4.7、Restful快速开发

在这里插入图片描述
在这里插入图片描述

五、基础配置

在这里插入图片描述
在这里插入图片描述

5.1、属性配置

5.1.1 配置方式

maven结构下,配置文件都写在resources目录下,application.properties就是springboot使用的默认配置文件

在这里插入图片描述
在这里插入图片描述

5.1.2 基础配置

https://www.bilibili.com/video/BV15b4y1a7yG?p=17&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述
在这里插入图片描述

5.2、配置文件分类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2.1、 属性配置提示消失解决方案

https://www.bilibili.com/video/BV15b4y1a7yG?p=20&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述

5.3、yaml文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.4、yaml数据读取

https://www.bilibili.com/video/BV15b4y1a7yG?p=22&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述
在这里插入图片描述

5.4.1、读取yaml全部属性数据

为防止定义变量过多,通过定义Environment变量自动注入方式,解决问题

在这里插入图片描述
在这里插入图片描述

5.4.2、读取yaml引用类型属性数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一旦使用关于Spring的注解出现在类里,例如我在实现类中用到了@Autowired注解,被注解的这个类是从Spring容器中取出来的,那调用的实现类也需要被Spring容器管理,加上@Component

六、整合第三方技术

6.1、整合Junit

1、@component是通用性的注解,@service 和@repository则是在@component的基础上添加了特定的功能。所以@component可以替换为@service和@repository,但是为了规范,服务层bean用@service,dao层用@repository。就好比代码规范,变量、方法命名一样。还有一点,正如文档描述那样:
2、@Repository的工作是捕获特定于平台的异常,并将它们作为Spring统一未检查异常的一部分重新抛出。为此,提供了PersistenceExceptionTranslationPostProcessor。
3、如果在dao层使用@service,就不能达到这样的目的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用@SpringBootTest时并没有像@ContextConfiguration一样显示指定locations或classes属性,原因在于@SpringBootTest注解会自动检索程序的配置文件,检索顺序是从当前包开始,逐级向上查找被@SpringBootApplication或@SpringBootConfiguration注解的类。
https://www.bilibili.com/video/BV15b4y1a7yG?p=27&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12

在这里插入图片描述

6.2、整合Mybatis

1、使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中
2、@Mapper注解是由Mybatis框架中定义的一个描述数据层接口的注解,注解往往起到的都是一个描述性作用,用于告诉sprigng框架此接口的实现类由Mybatis负责创建,并将其实现类对象存储到spring容器中。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2.1 常见问题

在这里插入图片描述

6.3、整合Mybatis-Plus

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.4、整合Druid

Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、Proxool等DB池的优点,同时加入了 日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池,可以说是目前最好的 连接池之一。
以下是两种配置方法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、SSMybatis-Plus整合案例制作分析

快捷键:
(1)ALT+7查看类中所有的方法
(2)ALT + Insert 调出generate实现get、set方法
(3)Ctrl + I 实现接口的抽象方法
(4)Ctrl + O 查看类中继承的方法

https://www.bilibili.com/video/BV15b4y1a7yG?p=32&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12
在这里插入图片描述
在这里插入图片描述

7.1 模块创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.2 实体类快速开发(lombok)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3 数据层标准开发(基础CRUD)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

7.4 开启Mybatis-Plus运行日志

在这里插入图片描述
在这里插入图片描述

7.5 分页

https://www.bilibili.com/video/BV15b4y1a7yG?p=37&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12

用到了Mybatis-Plus的分页功能,其中分页功能需要Mybatis-Plus的拦截器才能成功实现,拦截器是怎么实现的呢?不管我们做什么,整体上还是spring程序,做的所有东西都得受spring管理,spring是用来管bean的,在这里就需要用spring管理第三方bean的方式,把这个bean初始化出来并加载给spring容器。
第一步:在类上用@configuration,把类变成配置类,这里面的配置信息回头会被读取到。
第二部:我们去做对于的bean,用@bean public MybatisPlusInterceptor mybatisPlusInterceptor( ),在这个方法中把拦截器创建出来,添加内部分页拦截器,并return出去就好了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.6 数据层标佳开发(条件查询)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.7 业务层标准开发(基础CRUD)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Test包下测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.8 业务层快速开发(基于MyBatisPlus构建)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.9 表现层标准开发

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.10 表现层数据—致性处理(R对象)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面BookController2就是目录7.9实现的表现层BookController,为了这一章内容,改名成BookController2,并且把@RestController注释,避免被加载成Spring的bean,影响这一章的内容。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.11 前后端调用(axios发送异步请求)

在这里插入图片描述
https://www.bilibili.com/video/BV15b4y1a7yG?p=43&spm_id_from=pageDriver&vd_source=5061eb5d9c29eda75a5e1981cbcb4d12

了解Book.html前端页面一些布局内容,具体看上面链接视频

在这里插入图片描述

下面的操作是,根据vue里的created()钩子函数让页面初始化时执行对应操作,这里让操作台打印数据。res.data是后端返回的所有数据,包括flag和data,如果要单独取出data这写成res.data.data。

在这里插入图片描述
在这里插入图片描述

7.12 列表功能

在这里插入图片描述
在这里插入图片描述

7.13 添加功能

axios会把表单数据转成json格式发送给后端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.14 删除功能

scope.row是elementui传递数据的一种方式,它将整个行对象封装成scope,row指的是这一行的数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.15 修改功能(加载数据)

在这里插入图片描述
在这里插入图片描述

7.16 修改功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.17 异常消息处理

在这里插入图片描述

以下是介绍异常消息处理方法,例子是:根据一个固定触发的if抛出异常

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以下是第二个例子,让前端错误消息弹窗的消息,来自于后端

在这里插入图片描述
在这里插入图片描述

  抛出异常消息有前端管的,也有后端管的,这样不好。
  有两种方法:(1)是全部交给前端管,各种异常考虑到,并写在前端;(2)是交给后端管,前端根据后端传递的异常消息,弹出消息窗口提示。
  以下是第二种方法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.18 分页

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.19 分页功能维护(删除BUG)

在这里插入图片描述

7.20 条件查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.21 基础篇完结

在这里插入图片描述

8 部分知识点补充

8.1 get和post详解

  1、Get和post是表单提交数据的两种基本方式,get请求数据通过域名后缀url传送,用户可见,不安全,post请求数据通过在请求报文正文里传输,相对比较安全。
  2、get是通过url传递表单值,post通过url看不到表单域的值;
  3、get传递的数据量是有限的,如果要传递大数据量不能用get,比如type=“file”上传文章、type=“password”传递密码或者< text area >发 Get和post是表单提交数据的两种基本方式,get请求数据通过域名后缀url传送,用户可见,不安全,post请求数据通过在请求报文正文里传输,相对比较安全。
  4、get是通过url传递表单值,post通过url看不到表单域的值;
  5、get传递的数据量是有限的,如果要传递大数据量不能用get,比如type=“file”上传文章、type=“password”传递密码或者< text area >发表大段文章,post则没有这个限制;
  6、post会有浏览器提示重新提交表单的问题,get则没有(加分的回答)
对于Post的表单重新敲地址栏再刷新就不会提示重新提交了,因为重新敲地址就没有偷偷提交的数据了。Post方式的正确的地址很难直接发给别人。

GET和POST的区别

  1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
  2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
  3. GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
  4.   GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.
      GET是从服务器上获取数据,POST是向服务器传送数据。
      GET是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
    对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据
      GET传送的数据量较小,不能大于2KB(这主要是因为受URL长度限制)。POST传送的数据量较大,一般被默认为不受限制。但理论上,限制取决于服务器的处理能力。
      GET安全性较低,POST安全性较高。因为GET在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。POST的所有操作对用户来说都是不可见的。

8.2 ElementUI中<el-form>标签中 ref、:model、:rules 的作用

(1)
在这里插入图片描述
(2)
在这里插入图片描述

8.3 axios和ajax区别

1、功能不同
Axios:Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 ***.js 中。
AJAX:AJAX 是与服务器交换数据并更新部分网页的,在不重新加载整个页面的情况下Ajax = 异步 JavaScript 和 XML(标准通用标记语言的子集)。
2、特点不同
Axios从浏览器中创建 XMLHttpRequests,可以从 .js 创建 http 请求,支持 Promise API,可以拦截请求和响应、转换请求数据和响应数据。
Ajax是一种用于创建快速动态网页的技术,Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
3、部分参数不同
Axios:
axios({
url: 'http://jsonplaceholder.
.com/users’,
method: ‘get’,
responseType: ‘json’, // 默认的
data: {
//‘a’: 1,
//‘b’: 2,
}
}).then(function (response) {
***.log(response);
.log(.data);
}).catch(function (error) {
.log(error);
})
Ajax:
$.ajax({
url: 'http://jsonplaceholder.
.com/users’,
type: ‘get’,
dataType: ‘json’,
data: {
//‘a’: 1,
//‘b’: 2,
},
success: function (response) {
***.log(response);
}
})

扩展资料:
axios的实例方法:
以下是可用的实例方法。指定的配置将与实例的配置合并
axios#request(config)
axios#get(url[, config])
axios#delete(url[, config])
axios#head(url[, config])
axios#post(url[, data[, config]])
axios#put(url[, data[, config]])
axios#patch(url[, data[, config]])

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值