00:01
哎,刚我们就是这里边图上画的这些版,咱们要是第八个跑都能跑,但是这个代码呢,就得改来改去的。得改好多次,一改的话,我估计这会儿大伙就跟不上了啊,所以说咱们把关键点的代码看一下,咱们能够明白它是这么一个逻辑,所以说下一步我们得考虑一下怎么去整哈。这里边儿解决办法呢,其实有两个办法。嗯,分析问题哈,这个是解决方案。嗯。哎,就是说我们。嗯,把两个LC容器。合二为一。这是一个办法,怎么合二为一呢?就是说呢,我们不使用context loader listener。不使用它了。哎,然后呢,我们用dispatch扫描所有的,就是加载所有的spring的配置文件。
01:08
让去加载所有的。配置文件。哎,所以说就是大家看啊。呃,相当于这个图呢,相当于是这样的。说我们去在初始化的时候找IOC容器吧,它肯定是找不到,因为没有康泰listener了。没有了,他肯定是找不到的,找不到呢,它初始化的时候就放弃就不找了,不找呢,就等第一次请求的时候再找,这个时候呢,因为就一个LC容器找到的呢,就肯定是spring Mac的这个,哎,然后呢,Mac里边也扫描了这个配置类的啊,所以这个后边的这一切呢,就都顺理成章了。啊,这是一个办法。我们如果重新画一下这个图,我们其实在这描述一下这个过程就行了。
02:03
第一个点就是我们这个filter叫delegating filter proxy。Deleg proxy在初始化时,诶。嗯,查找LC容器。呃,这个找不到啊,这就一个LC容器,没有contact loader呢,肯定他找不到,哎,然后呢,就是说这个,呃,放弃。那么在这个第一次请求的时候。第一次请求时。呃,再次这个查找。哎,找到就一个,因为PASO就什么MC的,找到什么MC的LC容器。从这个LC容器中。
03:06
从这个LC容器里边去找到我们的呃,所需要的边。啊,就是他要找的那个B,然后后边呢,一切就都后边正正常去工作就好了啊,因为就一个LC容器,肯定所有的B都在这里边啊,你配置类也好,那个你是那个handler service map全都在这里边啊,所以后后后续的一切就都正常了。这是一个办法,这就要求呢,我们在这个操作上啊。外边小毛里边。我们把这一部分呢,给它就注释掉了,注释掉以后呢,就把把把把把把把这哈改成spring星。他就扫描spring所有的配置文件都是他去加载啊,这是这是这是这种方案。
04:03
这个方案呢?呃,能够解决问题,但是呢,我们说有一点小小的遗憾啊,也不是什么致命的问题,这个问题有一个小小的这个遗憾。那它会破坏。呃,现有的,呃,我们现有程序的这个结构。所谓这个破坏现有这个结构呢,就是说原本是。Context loader listener。和dispatch。哎,两个组件,嗯,他们创建。两个LC容器,哎,呃,现在呢。改成只有一个啊,这个会破坏我们程序现有的这个结构。
05:00
所以说我们再看看有没有有没有说能够保持我们这个结构不变的办法。
我来说两句