前言
这一节讲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了