00:00
好了,有了这个so ho以后呢?下面我们来详细的看一下这个solve,诶,这里边我们可以来说明这样几件事,第一个关于service容器,第二个关于service的生命周期方法。首先看。首先看我们说这个so,我们我们没有去创建其实例调用题方法吧,没有吧,以前在魅方法里边怎么样,是不是先new一个呀,然后去调方法吧,咱没knew,咱也没调方法,我们看到我们看到这个sol,当我启动服务器。而且在第一次访问的时候干什么了?是不是创建实例调用方法了?这个过程是谁干的?他们的服务器干的,他们开的服务器就是容器service,容器管理整个的生命周期,而且调用生命周期方法。
01:12
那以前呢,是我们创建实例,我们来调方法,现在不是了,现在是service的容器来帮我创建实例,并且调用方法,然后每次运行都会来调service方法,而且在当前服务器关闭的时候,大家看到它是不是还会来调一个destroy呢?诶destroy叫销毁,那这块的话呢,我们可以来说说,呃,关于色的容器。我们可以比较感性的来理解它。容器什么作用呢?
02:02
一我们看到它可以来创建并调用哈相关生命周期。方法,诶,这是以前,以前我们去创建一个类,去调用一个方法,没方法里边我们手工进行,现在这个不是由service容器来创建这个实例,调用这个方法,这就叫service容器,整个service的运行创建整个过程都在这个容器里边来进行,实际上他管的起始何止是这个S呢?那比方说我们我们学的其他三的规范相关的,比方说JSP。
03:08
比方说我们要学的filter,要学的listener,以知要学的这个tag标签等等等等,它们都是运行在这个service的容器里边,而且相关生命周期方法都是由容器来进行调用。这就是。设备的容器。好了,说什么呀,运行。So。PT,比方说filter,当软件环境,软件环境这就叫serve的容器,我们会有一个感性的认识,所以说我们前面我们举了一个什么例子啊,说鱼缸。
04:00
鱼缸可以养鱼,但是你用那个鱼缸去说它是一个容器的话也行是吧,成水的容器,但是鱼鱼的这个创建和销毁并不是由鱼缸来进行的,你不能说,哎,这个我我想要条鱼是吧,然后鱼缸给我创建了一条鱼,它并没有这么强的这个功能。下面我们来看第四个说生命。周期的方法,我们看到了有几个方法呢?你看我第一次请求的时候怎么样创建实例,调用init,调用service吧,以后每次再请求是不是都叫四维,然后在服务器关闭之前,它掉了一个。
05:13
所以说生命周期相关的方法有几个呀。构造器算一个,一米的算一个,Service算一个,算一个,一共是四个。有四个生命周期,相关的方法分别是。一着急。二听你的方法。三。
06:02
四。叫什么生命周期相关的方法,然后我们看后装期什么时候会调用呢?说目前是这样啊,第一次请求时。创建的实例。调用构造起好了,我们看我第二次再请求的话,还创建实例吗。不创建了,说只有第一次请求的时候创建实例调用护照器,这说明。这说明什么?说明是。单实例的很重要,说明什么呀,既然是单实例的,它就会有线程安全的问题,我们不推荐在service里边写一个全局变量,然后的话呢,每一次在service里边都进行改变,这个时候是有问题的,来一米的什么时候被调用啊?
07:22
啊,这个再写元啊只被调用。好了,你在什么时候调用什么哦,对象被也这么说,只被要用一次,看见了吧,是什么在创建好实力后,实力后立即被调用有啥用呢?说用于初始化当前四位。
08:02
啊,有点蒙圈哈,说初始化一个类靠的不是构造系吗?你咋还有一个阴你呢?看这哎构造器啊,是可以进行初始化没问题,但是我们看这个一是不还可以传一些东西过来啊,它传了一个参数,这个参数有其特殊的作用,这是构造器所不及的,这个参数一会再说。好了,Service service什么时候被叫?被叫多少次啊?多次调用吧,哎,每次请求,每次请求都会调用service。方法,这个是实际实际用于响应请求的,这里边的听说没到几次,只被调用一次,什么在。
09:07
当前所在的外B应用,外包应用被卸载前调用,然后什么呢?用于释放当前所占用。大资源,比方说包括一般复制链接,好了在这里边是吧,这就是so类的生命周期,相关的四个方法分别是构造器,In service destroy,我们必须清楚他们。各自的作用什么时候被调用,调用几次,那还有一个需要说的就是我们这也算是一个重点啊,说以下方法。
10:06
以下方法都是有。容器负责啊。调用,我们没有一次手工的比方创建一个对象,然后第二个方式一次也没有。一次也没有,这就这就是。好了,这就是相关的几个方法,那刚才的话呢,我们说了啊,说这个构造器跟这init呀,是在第一次被请求的时候调用啊,第一次被请求的时候创建实例,创建实例后马上就要mini,你那我有没有一个可能。我在当前外汇应用被。
11:02
加载的时候就创建这个实例呢,这就是什么log on。Start up。参数好了,说什么呢,我来配一下它,大家看。配一个指比配一个一。这个作用是。可以指定。被创建的时期,好了,我先写上,大伙先看看啊看看,哎,服务器启动。这是个啥情况啊,我还没请求吧,才启动怎么了,是不是创建实力到那一米了,哎,这就是这就是我的这个。
12:05
什么呢?这就是我的这个down up的作用。它有这样的一个作用,好了,那这个值啊可以取好多,那我这个值取的不同。有么呢,我们一个。创建一个class来。Second。第二个过来。Employment。So late。还是会有很多方法啊加上来。其他方法的话呢,我们不写了,我们只写一个。各装信也不写了啊。Out,因为这个方法一定是在后照器被调用之后,马上调用G,我这个对象一产生就在叫一,于是的话呢,我来写一个second。
13:09
So later in。写完。好了,我也配置一下。配置方式呢,跟这个一样。我就配它了啊,CTRLC这就不访问了,不访问了,直接写一个system。过来。C看这。我写一刚。二吧,这个我写够。我们想看诶哪一个先配创建好启动。往前翻。
14:00
哪个芯哪个芯片启动啊,是不是这个值越小越先别启动啊。看见了吗?这个值越小越先被启动。好了,我再停掉,那你越小的话,我要是取零呢。这个改改它啊,改这个我改成零。No see hi ho。零谁先启动了,是不是还是我的这个就小于被启动了零好了,我写一个负数,我写个负一。再看。写好后来我就负一的时候,你发现什么呀,是不是没被启动啊。这个时候只有我第一次请求的时候被创建,而且叫给你OK,那于是呢,通过以上的实验呢,我们会得到这样的一个结论,这个结论是这样的,叫slowdown standup,这个呢,实际上是一个节点啊,可以配置在。
15:10
一配置在。节点中配置的方式量配。后来。CTRLC。这样配。好了,第二我们说一下这个作用,On。Start up。可以。指定so的被创建的时机。具体是啥样的呀,说若为。负数则在第一次请求时被创建。
16:10
落为零或正数。则在当前。web应用被。容器加载时创建实例还没完,还没白,还有什么呀。说数值越小且。数值。越小。月岛被。创建,这就是我的什么?
17:02
好了,以上的话呢,我们讲了两部分内容,第一部分内容。我们说了。生命周期相关的四个方法,诶,必须要很好的理解啊,然后的话呢,又讲了一个什么呢,又讲了一个slowdown start up。我们以后再。看一些框架的那个service的时候,我们经常会看到啊,Lockdown start up是一个二或者是三有什么用啊,在当前外部应用才被加载的时候,这个service就创建好了,这个时候就是你才弄好这个,才加载好我这个框架就可以用了,所以说框架里边的话呢,只要用so来作为这个控制器的,通常都需要加一个它。二生命周期相关方法四个非常重要。无论是我们对理解sol还是在面试里边,这都是非常需要注意的问题。
18:08
同学们有的时候有这样一个问题,就是发现什么呀,他发现我服务器也启动了呀,但是他没有任何反应。基本上都是这么跑的啊,说这样运行。好运行,然后完开始开始跑。发现没有没有任何感觉,然后同时呢,这里边还干什么了,也设置这个log stand up standup了是吧,没有打印,为什么呀。这个时候有可能是这个服务器空跑的,你看这个服务器是不是根本就没带这个项目啊,懂这意思吗?只有你服务器带这个项目的话,它才能够运行这个项目,你怎么办呢?这样你把这个加进来就好了。看着哈。这样跑,你得跑这个项目,Run server next跑跑。
19:03
看这个时候是不是就可以了,有它,然后你要问的是什么,是不啊。Hello,这个时候就可以了,懂这意思吧,在这块看看什么呀,你看这个看有没有一个三角号,如果有的话打开看你这个项目在这里边有没有,有的话就OK,没有的话就不行,没有的话你就是服务器空跑了一趟,你根本就没带这个项目玩,那怎么能够运行呢?看service容器响应客户请求的过程,第一个service引擎会先检查是否是已经加载并创建了service的实例对象,如果已经创建了,已经加载了,直接执行。第四步就直接来干什么呀,直接来调思维方法。就是说我已经创建了,我就直接来调思维方法,然后呢。
20:00
第五步就是在呃,服务器外部应用被停止或重启的时候呢,设置引擎过来调第四状语方法,那如果没有创建实例的话,它就创建一个实例,然后叫以你这个过程就是我们在刚才说的那个生命周期方法相关的过程。大家也可以来看这个PPT啊,好了,我们看注册和运行,那我说的是谁呢?说的就是这个service name class跟you。说service的程序必须通过service容器来启动运行,并且存储目录有特殊的要求,这个class必须放在web的下面,你现在就是放这个下面的。是吧,Build pass,看这你看书中目录是classes,这是没问题的。
21:06
Service备的程序必须在we部应用的we部X文件里边被注册和映射,这个时候才可以被外部访问,就通过ul的方式进行访问,那靠什么呢?哎,靠注册,靠name跟class,分别是注册名跟的完整类名。映射靠的是name跟you pattern you are part pattern指定的就是我被你访问的虚拟路径哪个呀?看这。在这,这就是虚拟路径,这个是根目录,这就是hello,你可以任意改成hello to,呃,访问的话就叫hello to,而不是hello。来,我们看一看关于映射的一个细节,同一个solve可以被映射为多个ULG一个solve mapping啊,G一个S,可以有多个s mapping跟它匹配,什么意思呢?你看我有一个so,我可以写多个mapping,我再写一个这C,稍微这个就叫。
22:20
它原生的哈,这个叫二,这个时候两种方式都可以访问到我这个。Hello,大家看。没问题,O two是不是也OK啊?要一个可以有多个mapping为其进行映射。好了,映射的话呢,有点特殊的要求,这要求挺重要的说,呃,Ul pattern这块我们有两种固定的形式,一种格式是星号扩展名,另外一种形式是斜杠星,如果要是写星号的话,如果用通配符的话,只能这两种方式。
23:10
我再说一遍啊,如果用通配符的话,只能是这两种方式,这挺烦躁的,复制我就给它加进来。六关于。So with my。这块的话我们要说两点,第一点。说。同一个可以被映射到多个URL上,即多个self mapping元素的s name可以相同。二这个就不举例子了哈,我们可以使用通配符,如果用通配符的话,只有两种形式,我们看一下看一下这个在后边我们讲框架的时候会用到它,比方说我们以这个second为例。
24:15
瞅瞅叫什么叫?Mapping,于是的话呢,Select name second c c CR v几个什么呀。TL pon,好,那比方说我以所有点HTML结尾的都由它来进行受理,大家看一下啊,星点HTML这么写是。没问题的,就是只有HTML结尾的都由它来进行受理,好我写一个啊展思维的方法找着C。Second OK,看效果。
25:06
点天,反正只要这个天L结尾的,它都管前面随便写好了,也就是写了一个什么呀,写了一个星点HTML写法一定是这么写,带扩展名的,不能再写杠。好了好了,反过来,你比方说我要加一个斜杠图,怎么样呢?加了大家看。看这。我起诉都没起来呀,他说什么呀,他说这是不合法的,在这个里边这么写就是不行。就是说如果你要是在扩展名的话,不能加星,你要说所有的都被访问的话,对不起,不能加。
26:00
拓展名,这样可以看。比方说2.html随便写都可以被访问星吗?任意的都可以,好了,这是我们这块两个需要注意的点。这个合法。如果要是带星的话,就有两种合法。一种是是他。合法。或。或啥样啊或这样。星点,比方说do啊,点X呢都可以,但除此以外再使用星的话都不合法,注意什么呢?这个不合法。写个星,你再写个扩展名。以下的补课班。以下的记。
27:09
带斜杠右带。Cool。在明的顾客吧,哎,这是我们需要注意的一个地方。
我来说两句