Bootstrap

SpringBoot

前言

这一节讲SpringBoot

1. SpringBoot工程入门案例开发步骤

在这里插入图片描述
直接开始创建工程

在这里插入图片描述
我们选择这种类型的项目

在这里插入图片描述
我们这样创建

在这里插入图片描述

因为我们的java version 1.8.0是java的8版本,所以不能选17,我们改成SDK17就可以了

在这里插入图片描述
在这里插入图片描述
我们开发web程序,所以选web
在这里插入图片描述
最上面是版本号

我们改一下名字
在这里插入图片描述
在这里插入图片描述

一开始这么多,我们删掉一些
除了pom和src都删掉

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

我们先写一个控制器类

在这里插入图片描述
在这里插入图片描述
这样的话我们的SpringBoot程序已经开发完了
在这里插入图片描述
我们找到这个
在这里插入图片描述
我们选择运行

在这里插入图片描述
看这个我们就知道,Tomcat服务器都已经起来了
在这里插入图片描述
在这里插入图片描述
这就成功了

在这里插入图片描述

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

我们来删掉一些东西
在这里插入图片描述
这两个删掉
其中
在这里插入图片描述

在这里插入图片描述
最重要

第一步创建SpringBoot模块

第二步创建模块的时候选择web
第三步直接开发控制器类
第四步直接运行Application

2. SpringBoot工程官网创建方式

在这里插入图片描述

所以SpringBoot完胜
在这里插入图片描述
我们还可以在SpringBoot官网上创建

在这里插入图片描述
下翻

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

点那个spring iniialier
在这里插入图片描述
然后开始选择

在这里插入图片描述
然后点
在这里插入图片描述
选择springweb
在这里插入图片描述
我们选择第一个

在这里插入图片描述
然后点
在这里插入图片描述
生成

在这里插入图片描述
这就生成了一个zip文件
在这里插入图片描述
这也是我们创建的SpringBoot模块
所以idea创建SpringBoot要联网,因为就是走的这个流程

3. SpringBoot程序快速启动

SpringBoot不依赖Tomcat,idea这些工具,就可以运行,有jar即可,

在这里插入图片描述
但是前端没有数据库,所以得要连接我们的数据库才行

在这里插入图片描述
我们点package,因为我们的pom没有写打包方式,所以我们打成的是jar包

在这里插入图片描述
就是这个

在这里插入图片描述
这样我们来打开

在这里插入图片描述
然后发给前端人员,文件放哪,就在这里敲个cmd

在这里插入图片描述
在这里插入图片描述
然后执行命令

在这里插入图片描述
在这里插入图片描述
这样就成功了

在这里插入图片描述
在这里插入图片描述
所以boot程序运行,只需要jar都可以了
只有boot程序可以打成jar包命令行运行

在这里插入图片描述
主要依靠这个插件

4. SpringBoot简介(起步依赖)

在这里插入图片描述
我来看pom
在这里插入图片描述
在这里插入图片描述
相对路径删掉

它继承了一个父工程,这个父工程的pom写了很多我们要用的插件所有版本
点进start就可以看到它的父类

我们的boot版本就会有对应版本依赖
所以boot就已经做好了很多依赖
在这里插入图片描述
这个点进start你就可以看到spring-test的依赖还有其他依赖
所以我们都不用写依赖了

在这里插入图片描述
这里是web的依赖
这里面内置了Tomcat

所以就是版本管理加依赖,就实现了boot
在这里插入图片描述
这个是SpringBoot的主启动类,也是引导类
在这里插入图片描述
多所以我们最主要看start的依赖,和它的版本

5. SpringBoot简介(辅助功能之切换web服务器)

在这里插入图片描述
我们现在换一个服务器来运行试一下,
在这里插入图片描述
因为这里面内置了Tomcat
在这里插入图片描述

所以我们要排除依赖
在这里插入图片描述
这样就没了

在这里插入图片描述

现在直接都无法启动了

现在我们来使用jetty这个服务器,自己写一个依赖就可以了

在这里插入图片描述
我们的私服用的就是jetty

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

但是我们这里运行失败了

原因是8080端口被占了,我们刚刚输入命令行的时候占了,关闭就可以了

在这里插入图片描述
这样就可以了

在这里插入图片描述
在这里插入图片描述
jetty的版本我们不用写,因为版本管理不是我们干的

在这里插入图片描述
大型应用我们用Tomcat,小型的用jetty

6. 配置文件格式(三种)

在这里插入图片描述
端口8080改为80

在这里插入图片描述
现在开始配置文件改端口

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

在这里插入图片描述

在这里做配置

在这里插入图片描述
这样改就可以了

在这里插入图片描述
在这里插入图片描述
第二种方式

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

第三种格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为我们的模块设置这里有三种文件格式,所以我们写个port就会有提示的
我们以后主要写yaml

然后就是如果三种都存在的话,properties优先级最高,然后是yml,最后是yaml
在这里插入图片描述
我们这样写的意思就是我们的日志是debug级别的

在这里插入图片描述
这样我们的控制台就多了很多的内容

在这里插入图片描述
默认是info级别

在这里插入图片描述
warn级别就非常干净了

在这里插入图片描述

7. yaml格式

在这里插入图片描述
在这里插入图片描述
空格多的就是新的一个层级,属性前面一定要写空格,就是数据前面要写空格,与冒号之间

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

8. yaml数据读取方式(三种)

在这里插入图片描述

现在开始读取数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就读取成功了

在这里插入图片描述
在这里插入图片描述
但是这样太散了

在这里插入图片描述
在这里插入图片描述
第三种方式,就是我们常用的

在这里插入图片描述
我们定义一个实体类,对应yaml中的enterprise

所以我们使用对象的形式加载我们的信息

我们先让Spring能够控制它
定义为一个bean
在这里插入图片描述
第二步,告诉这个类,从当前配置中读取属性

在这里插入图片描述
这样的话,这个类里面的属性就会和配置文件中的数据一一对应了

在这里插入图片描述
这样就可以了

在这里插入图片描述
yaml里面的是做配置的

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

在这里插入图片描述

在这里插入图片描述

9. 多环境开发配置

我们直接设置多种环境来测试就可以了
设置不同的端口就可以了

在这里插入图片描述

不同环境之间加上三个横线就是不同的环境了

在这里插入图片描述
取名

在这里插入图片描述
但是这样写已经被淘汰了,我们换一种方式来写

在这里插入图片描述
这样写就可以了

在这里插入图片描述
但是properties文件怎么写呢

这个要创建多个文件

在这里插入图片描述
这个是主配置文件

在这里插入图片描述
在这里插入图片描述
因为这个文件的级别比较高,所以我们原来的都不用写

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

10. 多环境命令行启动参数设置

对于测试人员,它要测试的时候,是通过命令启动的,启动的时候,就可以改环境
在这里插入图片描述

第一
我们先把properties文件打包放进back目录下
第二
在这里插入图片描述
打包之前先执行clean
第三就是我们的yml文件中有中文,打包会失败
我们改一下配置

在这里插入图片描述
在这里插入图片描述
项目编码改为UTF-8
在这里插入图片描述
这里也改一下

然后打包

在这里插入图片描述
在这里插入图片描述
用的是默认的环境

在这里插入图片描述
这样写就可以了
写的格式和
在这里插入图片描述
对应

但是不行
在这里插入图片描述
这样写才行

在这里插入图片描述
对应

在这里插入图片描述
这样就改了端口了

现在就已经使用了test环境了

在这里插入图片描述
在这里插入图片描述
这样写的话,就是端口是88,环境是test

说明了命令行的参数配置比我们文件中的参数配置优先级高
在这里插入图片描述
默认参数(8080)<配置文件<命令行参数,优先级

11. 多环境开发兼容问题(Maven与boot)

maven与boot的环境不一样,一个开发环境,一个测试环境,谁为主呢
因为jar包是maven打的,所以maven为主
所以我们让maven控版本,boot加载maven设置版本
第一,我们在maven中设置了环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

说明是dev在生效,为什么呢
因为maven中设置的pro生效,没有告诉yml

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

在这里插入图片描述

但是我们这个执行的是8080端口了
原因是因为${profile.active}没有解析
因为pom里面写的东西,只能在pom文件中用,不能用在其它地方
要想干预配置文件,得加个插件
在这里插入图片描述

在这里插入图片描述

这样就可以解析我们的resource下的文件了

这样就可以加载了

在这里插入图片描述
这样就加载了

所以maven就决定了boot的环境了

在这里插入图片描述

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

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

12. 配置文件分类

在这里插入图片描述
每次输入这么多东西,比较麻烦
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
我们有两个yml,不同yml的端口不同

在这里插入图片描述
现在的端口是81,说明了同层(config)目录中出现了配置文件,这个配置文件会覆盖我们的配置文件,就是比较深的配置文件优先级高
在这里插入图片描述
我们现在把外面的配置文件放在这个目录下

在这里插入图片描述
在这里插入图片描述
我们改成82

在这里插入图片描述
这样我们的配置文件就生效了,而且覆盖resources下面的那两个配置文件

在这里插入图片描述
在这里插入图片描述
我们又在本目录下创建一个config,config下面又创建yml,端口改为88,这样的话,这个配置文件就会覆盖外面那个

在这里插入图片描述
这样就成功了
在这里插入图片描述
注意.yml是主流

13. SpringBoot整合junit

junit就是用来测试的

在这里插入图片描述
前两个大家都写的一样,所以可以不用写了

在这里插入图片描述
我们整合junit,只需要一个业务层就可以,所以不需要web

在这里插入图片描述

我们现在开始写Service层

在这里插入图片描述
然后定义出bean
在这里插入图片描述
在这里插入图片描述
这个测试类,默认加了@SpringBootTest

在这里插入图片描述

在这里插入图片描述
这样直接就能用了

在这里插入图片描述
在这里插入图片描述
这个类就起到了配置类的作用,就是引导类,我们的测试类默认会加载引导类,就是初始化spring的环境
如果这个测试类不在itheima中,就找不到配置类了,意思就是对应结构要相同,就是这个测试类会加载同层包下面的配置类

如果不在itheima包下面的话,就要指定参数了

在这里插入图片描述
这个无法运行

在这里插入图片描述
这个可以运行

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

14. SpringBoot整合Mybatis

在这里插入图片描述

在这里插入图片描述

在SpringBoot中这些都不用写

在这里插入图片描述

我们加上这两个起步依赖,整合Mybatis的话

在这里插入图片描述

在这里插入图片描述

先写个domain
然后是数据层

在这里插入图片描述

然后开始写配置文件

在这里插入图片描述

这样我们的程序就已经做完了

然后我们开始写测试类

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

我们报错了
因为我们最终运行的时候BookDao得是一个对象,但是这里只有接口,我们的对象是通过自动代理得到的,spring怎么知道我们的自动代理呢
SpringBoot是给这个接口弄上一个注解,看见这个注解,我们就生成代理类,
在这里插入图片描述

在这里插入图片描述

然后我们改一下表名,表名写错了

在这里插入图片描述
这就已经出来了

还有一个问题 ,就是我们配置里面的数据源是默认的内置数据源,要想用druid的话,加上就可以了
导入坐标就是了

在这里插入图片描述

然后在配置文件中设置

在这里插入图片描述
这就可以设置druid数据源了

在这里插入图片描述

然后还是可以完美运行

但是我们的下面有一个警告
我们点击
在这里插入图片描述

在这里插入图片描述

找到ea那里,添加上
-Xshare:off
即可
在这里插入图片描述

这样就没有警告了

在这里插入图片描述

注意如果SpringBoot的版本太低,可能会出现乱码的现象
我们要设置一下时区就可以了

在这里插入图片描述

但是我们的高版本就没有这个问题

在这里插入图片描述

15. 基于SpringBoot实现ssm整合

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

勾三个依赖

我们把原来写的代码全部直接拷贝过来

在这里插入图片描述

在这里插入图片描述
我们先添加druid的坐标

在这里插入图片描述

这个TODO的作用就是,有一个它的窗口,我们可以查看它

我们查看Config,就知道了,里面写的东西都没有用,可以全部删掉
然后在dao的上面加上Mapper,这个的作用就是让SpringBoot能够扫描到这个组件,然后生成自动代理
在这里插入图片描述
在这里插入图片描述
然后这些都不用怎么改了

我们把jdbc.properties里面的信息配置到yml中

在这里插入图片描述
我们改了三个东西,第一pom中添加了依赖,dao添加了@mapper
配置中做了数据源相关配置

我们先搞一下测试类

在这里插入图片描述
我们删掉最上面两排注解
在这里插入图片描述
然后上面加上SpringBootTest
在这里插入图片描述
然后换一下包

在这里插入图片描述
1改为2

在这里插入图片描述
然后我们没有报错

在这里插入图片描述
然后删掉这个测试类

接下来我们做页面的处理

我们这个SpringBoot没有webapp页面,但我们要把页面放在static那里

在这里插入图片描述

这下我们就要运行服务器了,不运行测试类了

在这里插入图片描述
这样我们就成功了

我们现在想一下,能不能做到我们直接输入locallhost就跳进来呢

我们配个主页就可以了
主页放在static下面

在这里插入图片描述
这样写就OK了

在这里插入图片描述

回车

在这里插入图片描述
这样就OK了

总结

这样我们就讲完了SpringBoot了

;