00:00
好,接下来呢,我们就来编写一个spring boot的hello word来体会一下spring boot的用法。首先我们这个spring boot对我们系统的要求就是我们这个Java必须是八及以上版本,以及Mar是3.3及以上,这个在Bo的官方文档里边也说的很清楚,在getting started这个章节,我们快速入门章节点进来,这是我们这个系统的要求,所以要求呢,当前WB版本必须是炸八级以上,另外呢,我们这个me这个必须是3.3级以上。那我们再来编写spring正式的hellowood之前,先来对me来做一个统一的设置,当然我们也应该来检查一下我本地的这个环境是没什么问题的Java杠,那这个Java版本呢,是1.8,然后我们这个me版本,VI版本呢,我这个是来看一下。它是3.6,然后呢,我来对me的整个配置文件,我们来重新修改一下。好来打开的安装位置。
01:01
那在这呢,主要来修改me的这个settings全局配置文件,加上呢我们这两个配置,那第一个配置是我们这说的,我们相当于让me使用阿里云的镜像,以后我们下载依赖就很快,第二个然后me呢,使用JDK1.8来进行项目编译,这样就会避免一些我们项目开发中的一些问题,把这一块呢,我们直接复制过来,来到我们这个配置文件里边,大家直接呢找个空位置一粘就行了。另外呢,大家的这个配置文件里边,如果你以前配过这个镜像或者我们这个profiles,那你也可以把你配置的这个我们修改了,没配过就直接粘就可以用,那接下来呢,我们就来编写一个hello word,首先我们hello word的需求也非常简单,我们浏览器呢,发送一个杠hello请求,我们服务器最终给浏览器响应一个字符串叫hello spring2。这呢是一个典型的我们web开发,那如果是我们以前用原生spring的方式,那们需要呢,创建一个项目,然后导入spring spring mvc等一大堆的这个依赖,导进来以后我们再来编写spring spring mvc的配置文件,还有编写他们的这个整合配置,写完后呢,我们来开发我们的代码,最终我们将我们的整个应用再来部署到to k上,当然我们也可以给IDE,我们的这个工具里边呢,来整合上time k,再来启动运行,这样呢都很麻烦,我们来看spring boot怎么做,也是来参照官方文档,在这呢,直接有developing开发我们第一个spring BOO应用,首先第一步就是creating the poem,创建我们一个po,也就是创建我们一个memory工程就行。那么来照着这个步骤来,第一步,我们先来创建一个memory项目。
02:39
好,我们这个创建me项,当然我们在创建me项目之前,我们也要确认我们这个idea里边,我们这个整合的这个me,来给大家看一下build,我的这个构建工具里边整合的这个memory呢,是我们自己的memory,用到我们的配置文件没啥问题,好,我们来创建一个memory项,也有更快的创建方式,我们后来再说,我们现在来创建一个嗯,Group ID来写。com硅谷,好artifact ID就来写一个boot。
03:07
零一就叫hello word。我们把这个小名拿过来。在这呢,复制过来,好,我来点一个finish,我们先把这个项目创建过来,这个项目创建过来以后呢,接下来该怎么做,我们来参照我们的这个官方文档来稍等我们这个项目,这个官方文档呢,我们发现我们创建的这个POM跟我们现在创建的这个项目里边,好,我们这个创建出来,大家一定把这个enable autoport点一下,这样我们这个idea呢,就会给我们自动导入我们这个项目里边,我们只要一写新的依赖就会自动导入,然后呢,这是我们默认的这个POM配置,然后如果我们想要使用spring boot来进行开发,在这个POM里边呢,额外会多一个我们称为parent,我们的负工程,把这个负工程呢,我们也导入到我们的这个。文件里边,那导进来以后呢,我们能看到我们使用spring boot是2.3.4这个版本,我们导入的这个复工程的名字叫boot starter parent这个固定写法,好,我们这个导入来以后呢,我们第一步就干完了,我们创建了一个项目,然后呢让它使用了spring boot,然后第二步我们添加我们这个系统的这个依赖,因为我们现在要开发一个web应用,如果是我们以前要spring spring m VC要导一大堆东西,现在呢,我们只需要添加一个依赖,叫spring boot start web,这我们称为web的场景启动器,也就是说你现在想要开发web场景了,把这个依赖拿过来,那我们现在想要开发web场景了,我们只需要导入一个来写一个dependences,好把web场景这个依赖我们来导进来,只要我们这个呢,一导进来,我们点开我们这个额外导入的包,我们就会发现,诶,我们这个外B场景开发里边几乎用到的所有的功能全导进来了,Spring mvc的一大堆,Spring核心的一堆,还有我们的包。
04:56
或日志等等,这些也都默认导进来了,所以呢,我们现在只需要来导入一个依赖就行,但是这是我们的第二步,我们来要做外部开发,导入一个依赖,这来第三步,人家说直接writing the code编写你的代码就行了,我们看人家的这个事例是来编写,写了一个类,然后这个类里边呢,这是我们spring mvc的写法,处理杠请求,然后返回hello word,然后呢,这个类里边也有一个主方法,所以为了这个整个层次清晰,期间老师这么来编写。接下来呢,我们想要编写一个spring boot的这个需需求,我们现在先来创建一个类,这个类呢,我们就放在com at硅谷boot包,这个类呢,我就叫my application,我把它称为主程序。答,这个类名你随便起,然后呢,你给这个类上标注一个注解叫spring boot application,这个注解呢,相当于告诉BOO,这是一个spring BOO应用,告诉咱们这spring BOO这是一个。
05:57
这是一个咱们这个spring应用。
06:03
我们必须用这个注解来告诉spring boot,这是一个boot应用,那告诉了之后,接下来怎么办?我们在这个主类上,我们也把标注了spring boot application注解的这个类,我们称为主程序类,我们来编写一个我们称为主程序类,这个相当于是我们所有启动的入口,然后呢,我们在慢方法里边,我们只需要写一个简单的一句话叫spring OB点二相当于spring应用怎么呢,跑起来,怎么给我跑起来把主类,你给它把主类加载进来,然后呢,把这个二传进来。就行了,这也是固定写法,这是我们的这个主程序类,有一个就行了,接下来我们再来编写我们的业务逻辑,也就是说我们主类写好了以后,我们无需过多的配置,以前怎么用,接下来还怎么用,我们在boot这个包下来创建,那我现在只有直接来写CTRL,我们spring mvc的那一套东西来hello ctrl。
07:06
好,我来创建了一个CTRL,我来标注一个注解叫CTRL,然后呢,我来编写一个方法处理我们hello请求,因为我们要返回字符串给我们的浏览器,所以呢,我们这个方法给我们就叫HANDLE01方法名随便,然后呢,接下来我们再来写spring mvc的这个注解叫request map,现在我们来映射请求,映射哪个请求呢?那希望浏览器中发送hello请求,Hello请求以后呢,然后我们处理,处理完了以后给我们浏览器返回一串话,就叫hello spring。二好,那这一串这个请求处理我们就写好了,因为我们返回的这个话要以字符串的方式写给浏览器,所以呢,我们给这个方法上会加一个注解,叫response body,那未来呢,我们这个处理器会处理非常多的请求,可能呢都要给浏览器返回这些字符字符串,所以我就把这个response body可以写在类上,代表我们这个类的每一个方法,它的返回的这些数据直接是写给浏览器的,而不是跳转到某个页面。当然这两个呢,标起来太麻烦了,我们spring mvc新注解呢,有一个叫rest ctrler,这个rest ctrler大家点进去会发现它呢其实就是controller和responsibility的合体,所以我就把这两个去掉,那以后呢,我们的写法就是我写了一个控制器,他专门来用来处理请求,然后呢,这个方法来处理哈令请求,最终这个返回的数据会写给浏览器,好,那接下来我们怎么运行我们这个程。
08:42
去,只需要在我们的这个主类里边来运行慢方法就行了,如果是我们以前我们还得给这个idea里边整合Tom cat,然后整一大堆我们才能运行,现在我们直接跑慢方法来看一下最终的效果。
09:00
好,我们现在呢,看到控制台开始有输出,我们看到这一块日志其实都是准备好的,而控制台输出Tom cat started on portt,然后我们这个他们cat呢,已经在8080端口启动了,那么不妨来访问一下,来访问local house 8080,我们访问它的杠哈请求回车,诶,我们发现它给我们响应hello springbot2,这就是简化了我们开发,我们现在呢,基本上省略了很多我们以前的配置,包括我们连toca都不用装,我们直接运行慢方法就行了。当然w boot更强大的呢,它还在于们可以用来简化我们的这个配置,那现在也都测试成功了,只要写完主程序类,我们直接编写我们的业务,在boot简化配置,怎么简化配置呢?比如我们以前呢,想要改他们看的端口号,我们还得打开tomca的配置文件等等一大堆,因为我们现在说spring boot,它是来整合其他所有东西的一个总框架。所以spring boot为了简化。
10:01
那期间将我们未来所有的配置都可以抽取在一个配置文件里边,这个配置文件好,我们固定名字叫application,第二,Properties。在这个配置文件里边呢,我们可以修改tomcat的一些设置,包括WLVC的一些设置,什么都可以改,比如我来改一个,我们来写一个叫server port来指定一个8888,这样呢,相当于我们改了我们服务器的端口号,我再来启动一下我们的这个应用。来看一下这样的效果。好,那么现在这个应用呢,重新启动起来,哎,它呢现在就是8888端口了,如果我现在还是8080访问,这就有问题,所以我们必须来敲8888走,所以呢,以后boot就给我们专门准备了一个统一的这个配置文件,所有的配置你都可以在这更改,包括呢,如果我们不更改的配置词,Boot都会有默认的东西,而我们这个配置到底能写哪些东西,我们也应该参照官方文档,好,我们来到官方文档的这个索引页面,索引页面呢,我们以前介绍过官方文档,这有一个叫application properties,这其实指的就是我们当前BOO应用到底能写哪些配置,来点开这一块呢,所有的配置列表全部在这呢,都有展示,比如我们之前来搜的server.port我来找一下我们之前我们能配服务端口的server.port哎,这就是我们关于服务器的配置,在这个章节,比如我们要配spring mvc的一些东西,关于web的相关配置。
11:38
都在这一块的相关章节等等等等,所以我们未来spring boot,我们再来开发所有应用的时候,我们配置不会写了,我们也可以来参照我们这个官方文档,我这一块呢,列举了我们每一个配置,配置项的名字叫什么,包括我们这个配置的默认值是什么,这个配置到底是用来干什么的,都也说的很清楚,那么后来不断的深入学习,我们就会配置我们这个配置文件了,所以我们现在smart boot呢,给我们做了非常多的简化,配置文件只需要在一处就能修改我们整个应用的所有配置,包括STEM boot也简化了我们部署,如果是以前我们的这个应用,好,我现在先把这个应用停掉,我要部署到我们目标服务器,我们目标服务器呢,还得装TOMCAT1大堆,然后再把应用打成我们说的这个wa包,因为我们现在呢,这个me项目,我们如果不写打包方式,默认就是炸,我们应该把这个项目呢,如果是以前我们应该打成佤包,然后呢再来把这个佤包部署到他们看服务器上这样一套。
12:38
很麻烦,有了spring boot怎么做?我们可以来参照spring boot我们的hello word这个文档,继续来到getting start。好,我们来开发,然后呢,我们这个事例已经运行成功了,没问题,然后我们现在想要简化部署,Boot说我们可以create创建一个可执行的炸包,也就是说我们只要引入了spring boot给我们提供的这个插件,我们可以把这个项目直接打成一个炸包,这个炸包里边呢,自带了我们整套的运行环境,这个炸呢,我们一般称为三炸,也就是我们的啊小胖炸,对吧,这个炸里边什么东西都有,所以它很胖。然后呢,这个炸包包含了我们整个的运行环境,所以我们直接能运行,我们可以来测试一下,我们把这个插件来复制过来。
13:28
好,然后呢,我们来到这儿,我们把这个插件呢导进来了,然后我们接下来使用打包,把我们boot这个应用clean package来打个包。好,我们现在看到呢,我们这个打包完成来到target里边,那么这呢,由我们的这个炸包BOOT01 hello word,我们这个炸好,我们来直接进入到target这个文件夹,在这一块我们来找一下open,我们受音explorer,好。
14:07
然后呢,我们直接进入到这个target里边,这有一个炸包,这个炸包呢,我们可以直接执行,我们来给大家测试一下,我使用CMD命令窗口进来B,我们给大家确认一下,确实呢由我们打的这个炸包点炸,然后呢,大家一定注意,我把我当前的这个应用已经停了,然后呢,我使用Java。杠这的命令,然后呢,就叫BOOT01HELLO回车。好,我们发现我们spring boot这个应用呢,现在就正在启动。来稍等一会儿,诶,Tomcat started啊888,比方说呢,我们这个s boot已经在888端口启动起来了,我们这个应用我来刷新一下,诶,现在呢又能访问,所以呢我们spring boot也简化了我们的部署,所以我们说boot很强大,从我们的开发到最配置到我们的部署,它都给我们来做了简化,我们回顾一下整个流程,我们以后呢,用spring boot开发应用,我们再也不用操心那么多的事情了,我们只需要创建一个简单的项目,然后呢,我们来引入一些依赖,这个依赖主要是我们要用到spring boot的功能,就必须引入spring boot的这个副项目,我们想要开发web,就必须引入web场景,诶,这是我们引的这个依赖。然后呢,接下来我们来编写我们应用的业务逻辑,那编写业务逻辑之前,你需要有一个主程序,相当于引导我们spring boot的这个启动,这主程序呢,固定写法直接复制过来。
15:41
核心呢,就在于我们要标告诉spring boot,这是一个spring boot应用就行了,接下来我们以前该怎么编写我们的业务,你就编写你的业务,无需任何过多的配置,以前我们spring mvc内配置一大套,现在通通不要,你直接把这个复制过来,而且呢,我们现在测试我们直接运行慢方法,直接运行慢方法方法即可,哎,是不是非常方便,包括也给我们简化了配置,我们只需要的呢,给我们整个工程里边编写一个文件叫application properties们将所有的配置呢,全部都可以写在这个里边。
16:20
好,这个插门来看一下,哎,这应该是一个proper文件,哎,你想要改配置,只需要在这来改一下就行了,另外呢,简化部署,我们再也不需要在目标服务器来安装tomcat等一大堆,你只需要呢,给你工程里边引入一个我们的这个插件,S boot的这个插件,然后呢,把我们的这个项目,把项目打成炸包即可,把项目打成炸包直接在我们这个目标服务器执行即可,所以呢会非常方便。那另外一个其他的小注意点,注意点是什么呢?好多同学在下边测试的时候,它的这个spring boot应用老是起不来,它测试不成功,可能原因呢在于这一块,你的这个CMD命令窗口来找到属性,属性,这呢你启用了快速编辑模式,这样的话呢,SBOO应用正在启动,你鼠标在这点一下,那它就卡在这了。
17:21
所以呢,大家一定要把这个快速编辑模式去掉,把这个呢,要去掉你的spring boot应用才能在这个控制台的方式来正常启动,这是第一个我们的这个注意点,我们呢一定要取消掉快速CMD的CMD的咱们这个快速编辑模式。第二点呢,有可能很多同学第一次使用spring boot,因为要下载大量依赖,他这个依赖呢,有可能没下载来,它要启动主程序,老是给我们来报缺少哪些类,那你呢,就把你的网络设置好,在这儿呢点一下刷新刷新,让它重新导入,这样呢,我们所有的依赖就会重新来进行下载。
18:01
啊,就是大家第一次来使用swim boot1定要耐心等待,因为我们第一次呢,要需要下载的这个炸包也非常多,大家会看到呢,这有一大堆的东西,这就是我们这个T的hellowood,大家是不是感觉到它的整个强大呢,包括我们最终BOT给我们打成的这个炸包,哎,我们说这个炸包里边所有的环境都有,我们可以用我们这个压缩软件把它打开,我们会看到我们spring boot给我们打成的这个炸包,在我们的这个啊boot info里边,这有一个Li力里边带了非常多的炸包,其中呢,就有一个这个叫tomcat banded,相当于呢,它帮我们打成的这个炸包里边已经带了汤姆盖的环境了,还有我们依赖的第三方的所有炸包,而我们写的程序,我们自己写的这个程序在哪呢?我们可以来看一下,那我们自己写的程序呢,那就在boot info classes,这是我们自己写的,Com and,硅谷在这,我们自己写的配置文件也在这儿,然后呢,我们第三方额外带的全部在这,这就是我们spring boot给我们无论从开发还是我们配置,还是我们最终的部署,最终的上线运维,那都会带来极大的方便。
我来说两句