00:00
好,前面呢,我们说了一下配置嵌入式的容器以及它的工作原理,但是呢,如果我们来使用嵌入式的容器,那么它也会有一些优点和缺点,那么它的这个最大的优点呢?哎,我们现在都体会体会到了,那就是简单和便捷。便携吧,然后呢,如果我们使用嵌入式的容器,我们在外部根本不需要来安装通mca等等等等,那我们这个应用就直接打成炸包就能运行了,而它的缺点呢,也很明显,就是嵌入式的容器默认不支持GSP,包括呢,我们要优化和定制嵌入式的容器,那么啊,我们这个优化。定制就比较复杂了。那么优化和定制呢,我们可以写那些定制器,那是一些简单定制,要做到深度优化定制,我们还得需要知道每一个容器里边的工作原理,我们可以啊,有两种办法,第一个呢,使用定制器。
01:08
就是我们以前说的两种方式,在这修改定制的时候,第一种呢,我们来修改server properties里边的属性,哎,这个server它是一个定制器,包括呢,我们也可以自定义我们的这个定制器,我们这个自定义定制器就是这个叫嵌入式的容器的定制器。这是我们以前使用定制器,当然我们也可以用更高级的方式,我们就是自己来编写啊,嵌入式SL。容器的创建工厂。自己来编写这个工厂,因为我们之前也说了,在这个嵌入式solid容器给里边来加嵌入式的tomcat容器工厂的时候,或者是加阶梯或者是加on套的时候,他们都会先判断我们当前里边是不是有一个嵌入式的容器工厂,我们可以自己来写这个容器工程,这样的话呢,就不局限于我们当前项目,只能用tomca接替或者on套了,那有时其他的啊,S容器一出来,我们都可以自己来写一个嵌入式的容器工厂,把那些S容器哎,我们给它创建出来来用就行。
02:26
这是我们说的这个嵌入式solid的容器,但是呢,我们在后来开发的时候,我们实际上很多应用都是要开发GSP的,所以呢,我们也是让他需要支持GSP,那需要支持GSP那怎么办呢?我们可以用另外一种办法,就是我们使用外置的容器。所谓的外置的容器,就是呢,我们在外面安装一个tomcat环境,哎,我们就以tomca为例,安装好tomcat呢,我们这个应用是以的方式。
03:01
挖包的方式打包,而不是以前我们是将应用啊,咱们这个打为可执行的炸包打成可执行啊咱们这个账,那么如果我们要用袜包,那怎么做呢?哎,也非常简单,我们来到我们这个idea里边,我直接来创建一个新的项目,你有一个project。我们在这个项目里边呢,我们还是使用spring的初始化器,我们将项目打成炸包,来点at硅谷好,Spring boot。杠04WEB来我们打成炸包呢,就能方便的支持JSP了,但是注意这一块,这有一个盘方式,这是炸账,我们来给它改成一个wa宝,打成一个wa宝,好,然后呢,我们把这个删掉好,下一步我呢还是选择我们用web应用就行了,我们选一个模块,注意我们用spring boot150啊我们之前的版本好,我们下一步好,我来把这个项目呢创建出来看一下,当我们要创建一个哇,项目会是怎么样的呢?你就在当前窗口打开。
04:16
好,他帮我们呢,把这个项目下载出来,S rcman Java,我们看到这有com at硅谷啊,JSP application我们看到呢,有一个,哎,这是springbo的主程序,而且呢,我们看到这还多了一个类,这个类的作用呢,我们后来再说,但是呢,我们这个项目既然现在我们看po文件,它是以袜包的形形式,那么呢,我们在src慢下,除过有Java resource,那还应该有web APP文件夹,而这个呢,我们现在还没有,我们给他生成一下。生成这个web APP文件夹两种办法,你可以自己来手动在那创建,但是呢,我们注意在这儿这呢有一个叫这个按钮,它叫项目的这个结构,我们把这个按钮来点一下,我们当然这个项目呢,就是spring boo4web GSP这个项目,我们来到它这个models里边,模型里边,我们这个项目呢,除过是spring的项目外,它也是一个web应用,这web应用呢,下边有一个叫web resource,就是呢我们web资源的目录,Web资源的目录呢,我们来双击这一块,我们发现呢,它默认其实就是给当前项目src下慢下web APP下放东西,只不过呢,这个文件夹目录还没生成,你点一个OK,它就会提示是不是要自动创建这个文件夹,你点个yes就行了,那么这个文件夹呢,就会在这自动创建,但是呢,我们注意这还有一个叫deployments,哎,Describes是。
05:56
那么我们这个叫部署描述符,这其实就是生成我们web插文件的,我在这呢,点一个加号,诶,我们可以来让它生成web插文件,Web插文件生成在哪呢?注意哎,就生成在我们刚才的目录src下,慢下。
06:16
的web APP文件夹下,哎,我们主要呢,是有一个叫web info文件夹里边的这个web点插码,我们把这个全路径呢要写完,我点一个OK,这样的话呢,它就会给我们指定的位置啊,就是我们这个来点一个编辑,在我们指定的这个位置呢,生成web插,并且呢,在这生成相关的web目录结构,我点一个应用。点一个OK,我们看这个目录结构,Web APP web ino,下边呢有web插,哎,那就没问题,我们这个web目录结构就算是生成了,而我们这个应用要如何启动呢?那我们就可以打成咱们这个挖包的方式放在服务器上,那么呢,我们也可以直接把服务器整合进idea里边,我们来启动那就更方便了。那么怎么把服务器整合进idea呢?来注意在这个运行窗口这儿点一个编辑咱们这个配置,这编辑配置呢,我们在这是一个spring BOO应用,但是用它是不行的,我们在这点一个加号,我们要加入服务器,加入服务器呢,这一块没列举,这有一个32ITEM small,也就说呢,我们还有32项来看一下,其中呢,就有一个叫Tom k server,叫Tom k服务器,哎,我点一个local,就是加入我们本地的服务器,那给咱们这个Tom k起一个名,比如呢,我们就叫Tom k7,我把我本机的Tom k7。
07:45
配置在这这有一个con,首先呢指定Tom k呢啊咱们这个home Tom home,我的Tom呢,在这装着第1SOFT。哎,我们这儿没有,我这儿有一个program files,诶我这儿有一个Tom cat7,我点个OK,点个OK,我们这个Tom cat7我就进来了,然后呢,这一块就是定制咱们这个tomca的访问端口啥的,但是呢,我们tomca要加载运行我们这个BOOT04项目要怎么运行呢?注意这块设置tomca,这还有一个叫deployment,哎,部署这个呢,添加我们要部署的哪个项目在这呢,来点加号,这一块的操作呢,挺麻烦的,大家多操作几次,这有一个叫artifact,好选中我们要部署的项目,我们就要部署through boot杠四这个袜包,我们用它暴露的这个挖啊,我点一个OK,你点一个应用,点一个OK,这样的话呢,我们就要他开,就算是在这配置好了,哎,我们看到这有个to k7,那我直接运行就行了。
08:53
么一运行呢,我们这个开它就启动了,来看控制台。你看控制台,控制台呢,哎,他们看他呢,在这儿启动。
09:05
这个输出呢,哎,这就是他们看到的启动输出包,它启动的过程中呢,我们来等一等,诶这个spring boot应用也被他带起来了。带起来以后呢,我们就要开它启动就正确了,而正确呢,我们看到第一个显示一个错误页面。这呢也是由于我们没有写这个首页,而我们呢主要来为了测JSP,我呢就在外网APP下,我直接来创建一个JSP,比如呢,我们就叫hello.jsp好,我们在这儿呢,看一下能不能访问JSP页面,Hello JSP。好,我们呢,把这个改了以后,我就关掉,然后呢重启服务器,重启服务器,然后呢,我们来访问我们这个local house8081,我来访问hello JSP,看我们能不能访问到你这个GSP页面,好,服务器呢在这儿启动。启动呢,我们这个springb应用也启动,启动以后呢,我们来访问8081下的,哎,我们把这个8081关掉,8081下的哈,点JSP回车,哎,我们发现这个JSP页面就是可以使用的,这样呢,我们就使用了一个JSP页面,包括呢,我们跟spring l VC结合起来,比如呢,我们从hello JSP页面,我想要发一个请求,将ABC。
10:29
超链接就就发呢,我们这个当前项目下的这个ABC请求,我想让他来到一个success页面,Success页面呢在web info下。哎,我们以前开发经常这么来写,好,这呢是一个成功页面。CIRC。那我们要怎么写呢?好,我们就直接来给我们这儿,我们来写一个ctrller,我们放在ctrler包下,我们就叫hello ctrler hello CTR呢,它来处理请求,哎,我们叫ctrler,我们叫CR注解,它处理哪个请求呢哈。
11:10
哎,处理的是啊,我就直接写一个叫at get map啊,我们get方式过来的ABC请求啊,当然项目下的ABC return呢,就是我们要返回的页面,我们这个页面呢是success JSP,而我们以前呢,要经常给web英里边来返回一个页面,我们以前配过视图解析器特resource,我用reserve有前缀,有后缀,有拼串,而我们这一块呢,我们也可以来配,结合它的这个配置,有一个叫点MVC,我们看到这一个点我们可以来配置,它就是从我们当前项目下的web ino文件夹下开,而同样的我们来配一个后缀点MVc.surface。
12:02
啊,我们都是呢点JSP页面,那这样呢,我们只要是给webo下找JSP,只需要写页面的名字就行了,哎,叫success就跟我们以前的用法一样好。我呢也可以放一些数据,让他在页面里边来取一下,我们用model,那model呢,model.and atribute来放一个message消息,Message消息呢就叫哎,你好,那么呢,我们就在咱们这个success页面,看能不能用EL表达式啊,我们用H3好,我们用Dollar符大括号啊,我们就叫message来取出这个消息,好。我呢就来重启一下服务器,我把这个关掉,好,我再来启动一下服务器,我们来访问看一下能不能访问到我们这个success页面,好,这hello JSP我来刷新一下,我们来发ABC请求,来发现来到了success页面,也取出了你好消息,那我们这个就成功了,那看起来呢,过程还是挺多的,我们来总结一下如何使用外置的容器的步骤。
13:17
这个步骤里边呢,有非常多的几个关键点,第一个关键点,首先呢,我们必须先来创建一个项目。创建一个万项目,当然如果我们用spring的初始化向导器,我万项目一创建,那其实都已经好了,但是我们来看它的一些变化,万项目创建了以后,如果我们自己要写po文件,也应该像人家一样,他们嵌入式的tomca指定成provide,哎,将咱们这个嵌入式的comca。指定为咱们这个叫provide,意思是目标环境已经有了啊,我们就不需要打包的时候带上我这个,我开头这是我们第二步,第三步注意有非常重要的两个东西。
14:11
就是。就是呢,我们这有多了一个叫引内收拉,这个是必须写的,没有它我们是启动不起来的,而且呢,这个引力书拉类名随意,它必须继承于哎这个S引秘书拉,好,我们必须呢编写一个,第三步必须编写一个。编写一个它相当于是编写一个引力的实现。我们叫子类,编写一个这个子类,那边这个子类的目的是什么?目的就是调用这个con方法B,咱们这个调用。康方法。在这个conflict方法里边呢,这是固定写法。
15:05
在这里边呢,大家来注意,在这个里边呢,Application就是我们这个spring application,我们spring应用的这个构建器调用呢source方法要传入的主程序,哎,我们这个主程序才叫04WEB GSP不始我们需要传入as它的应用的主程序。主程序要说呢,必须有它,然后呢,接下来我们再来启动啊,启动服务器就可以使用了,哎,主要的核心就是pop文件里边将comca的引用变为provide,以及我们写一个Bo initial的子类,然后呢,传入我们应用的主程序,如果说我们直接来启动spring应用的主程序,我停掉来直接启动,这是错误的啊,它是没法启动的,我们来启动起来,我们来看一下。
16:07
哎,这块呢就退出了,我们这个程序呢,就终止了,所以呢,我们必须是以这种方式先写一个so in initial拉,那原理是什么呢?我们下一节课就来解析,主要呢就是詹姆四步,当创建出一个挖项目以后呢,我们要利用idea啊,这个挖项目的这个目录结构创建好,创建好咱们这个目录结构,这个目录结构呢,大家多创建几次就熟悉了。
我来说两句