00:00
下边呢,我们来研究一下润如何整合抓图。这个stra to啊是一个web框架,所以说我们先需要考虑一个问题。Spring如何在web应用里边使用,然后再来考虑spring如何整合刷图,OK,新建一个。外部项目。这是根。是润整合harmon一个不一样的地方。论整个hat,一个一般的Java项目就可以了,而这个需要一个web项目。Spring。新建一个note.txt。我们需要分。两个步骤来研究四整合四川组第一个步骤。
01:03
Spring如何在web应用中使用第二个我们考虑。Spring如何苯和?抓。两个步骤。好,如何在web应用里边用?那在web里边用跟spring在非web里边用有什么重大区别吗?呃,我们逐一来说。第一个什么呀,架抛的女人不一样。家包上有一点不同,我们需要额外的考入两个跟外部相关的。哪两个呢?这两个实际上我们前面考的时候我们也考了哈,因为我们前面考的时候我是这样考,考的是这个块,那有两个包,嗯,是需要额外考入的。
02:03
这两个就是说我们前面我们在这个大工程里边,这两个包是这两个包是可以不考的,而四不在外部里边的话,这两个包必须要考起来,第一个第二个。配置文件,这个真没什么不一样。没什么。需要额外加入的啊。好,还有什么呀,还有一个。第三个。就是如何创建LC容器。你会问,LC容器不就是六的吗?对,LC中这是new的,在我们前面讲这个12345的时候,我们都是创建application context这个接口的一个实现类。
03:08
那我们说说吧,哎,一。非web应用。但没方法。直接创建好了,那我们看web应用呢,我们还是在没方法里边直接创建吗。被告显然不是。那我们希望在什么时候创建这个LC容器的实例呢?注意听一下哈。一个web应用,我们希望在什么时候创建这个IOC容器的实例呢?Web应用。应用应该在。
04:05
Web应用。对服务器。加载时。就创建IOC容器吧,你不能等这个外部应用已经成功的运行了再创建吧。因为。这个外部应用已经运行的话,我可能就需要那个LC容器了,所以说应该是在外部应用被外部。呃,外部应用。应该在外部应用对服务器加载的时候就创建LC容器,大家说这个时机应该是什么时候啊?这个时机应该是什么时候啊?一会儿有个词叫。被服务器加载的时候创建,那么服务器被加载的时候,我们这个时刻我们能够直接抓住吗?
05:08
那我们讲,我们讲到实际上是有一个监听器,这个监听器叫。Contact listener。对吧,记得这个吗?Service contact,还有一个给你的方法,这个时候创建是最合适的,就说爱。在被告。Listener的。这个方法里边创建是最合适的。嗯,应该是在这个方法中。放电。LC这个时候是。
06:01
最合适的。这样。创建好以后,那么当当前外部应用被启动以后。我就可以立即使用这个IOC容器了。好的,那除了创建以外的话,我们还应该干点什么,那我在外部应用的其他组件里边如何去访问它?三。在APP应用的其他组件中,如何来访问LC?容器呢,不可访问呢,那我显然我在这个方法里边创建LC容器以后。我可以考虑把它放到。Application那个对象里面,就是说service context的一个属性可以放那个里边对吧。
07:01
好说在在这个中创建LC容器后。可以把其放在。So。怎么样?Application育种。的一个。属性中,这样的话,我在外部应用的其他组件里边不就可以来访问了吗?好了,以上呢是我们四不论在外部应用里边需要注意的几个问题啊,需要额外加两个加包。什么时候去创建这个LC容器呢?我们用了这个叫context in的方法创建,而且我还把你放在application域里边。我们来写一个模拟的代码。
08:02
大家看一下哈。看点爱硅谷点。to.listener。首先写一个。Listener。这,这。Spring。Context。下一步。这个吧,生命周期相关的是吧。Finish。好的,我们就在这个里边的事就是一创建LC容器,二。把LC容器放在。
09:02
Contact,一个。朱敬重。那就可以。好的。我们首先的话呢,先需要导入。Spring大包require全部这里边的话呢,已经包含了这个web跟web Mac。然后呢,搞一个配置文件。Application。Context。我们直接创建一个一般的。就是一个就是一个测试了哈,比方说我来写一个person。位置量了一个一般的B,这个person,我们写一个属性吧,Private的。
10:06
Name。Public void。C。Without。My name is j you name。OK,写完。这里我配一下。B。A。Person。Property user nameme kind at,硅谷,OK,我们这是一个什么呀,配置了一个B以上的话呢,我是为了更好的进行测试,写完了这里边我需要创建IOC容器。
11:03
Contact。等于六八。Application context。有一个问题。这个配置文件在哪呢?文件名叫什么呢?啊,我们说哦,在这个下边默认的文件名呢,呃叫他,但实际上这个应该是可配置的,对吧,就是说我们还可以让它更具可扩展性,我们来写一个四。实际上。是不是?配置。文件的名字和位置。应该也是可配置。是这样吗?配置配置那怎么配呀。
12:04
我用的是service contact listener,我用的是这样的一个监听器,那么它能够访问到哪些?可配置的参数呢,那。在什么呀,配置啊,将其配置到。当前web应用的初始化参数中。较为合适,是这样吧,就是说我可以在这个里边去背一下。啊,这只立在哪,这我经干掉了哈。启动LC。
13:02
容器的。Con。然后的话呢,我可以在这块配置啊。配置文件的。迎春。好位置,OK,来写一下。A con。Car。Name。比方说我叫kigig老。Para value,比方说哎,我说他在类路径下。这个名称的话呢,就是它。嗯,这类这类路径下这个名称的话呢,就它我们比方说这是一个默认的哈,那这个时候再来访问,这个效果就不一样了,这个名称我们再来写一个吧。
14:02
一。或者。配置文件的名称。好了,我们这个里面,我们就没给它放在其他目录下,实际上你也可以进行解析,比方说你在这个上下边写个什么呀,写一个class pass这个,我这个时候我需要来解析这个前缀,我要带这个class pass的话,就直接带一路镜像,如果没有它的话。那么默认啊,在什么什么目录下,这个我们是可以进行定制的,那我这块我们图方便啊,这我这就不写了。回来这个名称怎么获取啊,首先我先需要来获取contact等于二零点X,然后呢,我们写个string的。
15:01
Con。等于service context.in什么?Now the location。然后来创建它。创建好之后。Location。然后呢,给它放到四里边。Set attribute,比方说我们来写一个叫application。这样写的哈。然后接一个CDX。放好就是我们创建LC容器的过程,创建好之后我们可以去搞一个solid。
16:02
哎。一个我在那个sub里边干什么呀。得到这个。LC容器,然后再来获取我在LC容器里边配置的这个bin对吧。我来写一个,这实际上是一个叫test。Solid。下一步这个不改了啊,直接保留一个度盖的方法。好了,这里边儿这个步骤应该是首先啊,从。Application。玉。对象中得到LC容器的引用。第二步,从LC容器中得到需要的。病,这实际上是一个测试,那么得呢?
17:01
先得到context等于that context,然后再搞到这个application context ctx等于service context.attribute这个CTRLV应该还在。能转。然后找到这个病叫person。等于C tx.get b。Person点,那我来调person的方法。啊,不是直接可以是吧,Person点哈。好,那我如果。我在这个外B应用启动以后,我来访问这个能够打出hello,艾特硅谷就OK了吧。不是,Hello at硅谷是是什么呀?是my name is my name is at硅谷,于是的话呢,我再来创建一个。
18:02
测试页面。Index JSP。He PA s。OK。走一个。看一下啊。OK吧?好的,以上呢,是我们spring在外部应用下使用的,嗯,最核心的思路还有代码。我们来梳理一下。首先需要注意额外加两个加包。第二个配置文件没什么不一样。第三个,那这web里边用的话,主要需要考虑在什么时候创建LC容器,那最好的选择就是。
19:08
在当前外部应用被服务器加载的时候。即在service contacter的这个contact以。呃,Initialize的方法里边创建LC容器是最合适的,这个时机创建好之后呢,我再给它放在application域里边,以供其他web组件进行访问。那还有一个额外的,我们希望这个配置文件的名称和位置都是。可配置的,那么我们给它放在什么里边,当前外部应用的初始化参数里面,好了啊,那这个写完了。那实际上这些事情我们能够想到,当然也能够想到,所以说。在web应用里边使用spring的话,我们可以使用spring给我们已经提供好的现成的一个类似于我们这样的一个listen。
20:10
下节课我们来详细说这个事儿。
我来说两句