00:00
好,然后呢,咱们呢,把这个web in咱们已经创建完了,对吧?这里面咱们主要来写的是什么?首先这个是不是来指定咱们spring的配置类,这个来指定spring VC配置类,然后这个来指定我们的dispatch of前端控制器的一个映射规则,其实就是咱们的URL pattern是不是啊。好,然后再往下的话,咱们就是来添加过滤器了,来大家来看,你看我们来写的是不是应该也是这些内容,大家会发现这些方法的返回值是不是都是一个数组,是不是啊,所以说那那大家想,那咱们的spring的配置文件是不是就可以有多高,配置类就可以有多高,咱们的supreme VC的配置配置类是不是也可以有多高,对不对,包括我们当前咱们的servele,它的一个映射规则也就URL pattern,大家说这个东西大家应该都学过,一个solve可不可以有多个URL pattern的可不可以,可以嘛,一个solve是可以有多个URL pattern的,能听懂吧?好啊,行,再往下,那咱们的过滤器,咱们的web点叉ML中可不可以配置多个过滤器啊,可以,所以说咱们只需要把咱们的这些过滤器创建出来,然后放在我们当前的一个过滤器数组中,然后直接将它返回就可以,能看懂吗?
01:22
哎,好啊,行,那咱们的web in咱们写完了,然后下面呢,那咱们继续往下看,那因为我们现在还没有进行SSM的整合,那所以说spring的配置类其实咱们就不用去写了,是不是啊,对吧,咱们把它创建出来也行,或者说大家不创建也可以,咱们在这就直接设置一个new class0就可以了,知道不?哎,好啊。行,下面呢,咱们看,那我们现在咱们是不是就要来使用我们的这种方式去代替咱们的spring mvc的配置文件,是不是啊,所以说大家注意,我们当前咱们所写的这个配置类是用来干嘛的?用来代替什么?用来代替咱们spring mvc的配置文件能听懂吧?好,Spring mvc的配置文件,那所以说咱们能在这个文件中来写什么呀?大家来想想,大家还有印象吧啊,大家说咱们能在spring的spring VC的配置文件中能干什么?首先咱们的第一个咱们是不是可以来扫描组件,可不可以啊,可以啊好,然后咱们的第二个咱们可以干什么,是不是试图解析器能看懂吧?好,然后第三个咱们紧接着来学的是什么啊,大家说第三个是不是应该是咱们的V-con。
02:48
View control对不对,对吧,然后再往下呢?啊再往下再往下是不是咱们有这个什么默认的solve Du,然后defa-serve-hand啊看懂这能看懂吗?好还有谁第五个是不是应该是MVC注解驱动是不是啊是吧,然后还有谁啊,这不就静态资源处理吗。
03:22
是吧,这是静态资源处理吗?是是吧,好,然后再往下MVC注解驱动,还有谁咱们的文件上传解析器,大家还有印象没有,有啊,文件上传解析器,然后还有谁就是咱们的异常处,大家还记得不异常处理,然后再往下第八个,咱们是不是还有拦截器,大家想想咱们在SPAMEC的配置文件中写的内容是不是应该有这么多能看懂吧?好,OK啊,行,那下面呢,咱们就通过我们当前的一个web convi,把咱们的这些功能都实现一下,OK吧,好啊,行,来吧,大家看好,首先来在这儿我开始加注解了啊,这个类大家说是这个注解是用来干什么的?将当前类标识为一个什么当前类,然后标。
04:22
十为一个配置类能看懂吧,好,然后再往下第二个compound sky能看懂不来大家看这是是不是应该是咱们所说的第一个内容叫做扫描组件能看懂吧?好然后再往下大家看,这里面还有一个叫做M,叫做enable web mvc,那这个东西是用来干嘛的呢?En是可用web就是web mvc这个东西是开启MVC的注解驱动,能听懂不能听懂吧?好,大家注意,这个注解就相当于我们的开启MVC注解驱动能听懂不好,OK啊,在这儿大家来看,然后我们当前加上注释第五个MVC的注解驱动,好,大家看这个东西也有了,那我们下面咱们是不是就可以来配置咱们的这些东西了,对不对,对吧,好,OK啊,行。
05:20
呃,这个视图解析器的话,我先给大家家写出来啊,因为这个东西呢,这个不太好写,所以说我这个我就直接给大家复制了,其他的东西我给大家写出来行吗?好啊,然后大家看是从这个地方开始,然后一下到这个地方,这个东西其实原来它也是很好写的,只不过呢,就是因为咱们现在换了一个simli view,所以说它变得还是比较麻烦的,其实呢,在之前我跟大家说过,我们原来用GSP的时候,咱们就只要配置一个internal resource view,大家还有印象没有,我当时是不是给大家创建了一个web,这个spring VC的工程,然后就是来支持咱们的GSP视图的,有印象吧?啊,行啊,好,如果说我们用的是GSP的话,其实咱们只要配置一个internal resource view就行,但是大家看我们在这个地方,咱们是不是应该用的是咱们的SIM view。
06:20
对不对,所以说这个东西就不太好配置了啊,大家看一下,那首先呢,我先给大家说一下咱们的这个a ban是什么意思,其实这个东西大家应该都知道,对吧?干什么呢?我们当前加上这个注解的方法,它的返回值就是我们IOC容器中的一个B,对不对,对吧?好,可以作为IOC容器中的一个B,那我们先来看看我们之前咱们是怎么配置的啊,首先咱们先来找到我们spring mvc的配置文件来大家看啊。看好咱们怎么写的啊,这是我们当前咱们的视图解析器。大家看,首先这是我的view view能看懂吗?然后再往下,然后咱们的view中是不是有order,然后有charactercoding,然后是不是有咱们的template。
07:16
N紧,对不对?好,然后再往下大家看,这有一个病,然后这还有一个病,这是不是应该这个病中嵌套了这个病,这个病中又嵌套了这个病,大家说对不对,对吧?好,那所以说大家想根据我们所学习过spring,所学习过的spring,我们当前这个对象和对象之间的依赖关系应该是怎么样的,大家说这个病是不是应该是依赖于这个病的,对不对,对吧?而咱们的这个病是不是又应该依赖于这个病,能看懂吧?好,那所以说大家想我是我现在要来创建一个similar life will resolve这个病的话,咱们是不是首先得有这个病,大家说对不对,叫做spring template n能看懂吧?好,那如果我现在要想来创建咱们的这个病的话,那我们首先就得有这个病,大家说是不是,所以说大家说我们应该是从外到里去创建,还是从里到外去创建。
08:16
应该是从里到外去创建,所以说呢,大家看咱们首先来创建的应该是这样的一个病啊,叫做spring resource template reserver什么意思,Template是不是应该是模板的意思,叫做模板解析器,对不对,叫做模板解析器来吧,大家看啊,首先看这配置生成咱们的模板解析器,来大家看。看好了啊,然后这个是BOK吧,A的B,然后下面咱们在这来写了一个方法,这个方法的返回值就是我们当前咱们spring spring IOC容器中的一个病,对不对,对吧?好,大家看你看咱们在这创建出来的是不是就是我们当前的一个templr叫I templl server是不是啊,虽然说类型不一样,但是咱们说过这个类型只要是兼容类型是不是就可以,对不对,能听懂吧,好OK啊行,然后再往下的话,大家看这里面呢,我们是先来获取了我们当前的一个we部application con的这个东西,大家认识不认识啊。
09:24
啊,大家看这个东西咱们认识不认识呀,应该是认识的吧,对吧?啊,咱们原来在讲IOC容器的时候,咱们是不是说过IOC容器在spring中的实现,是不是啊,然后咱们学过一个all,然后还学过all web application,在我们当前的Java工程中,咱们所创建的就是什么application,然后如果说我们当前的工程,它是一个we部工程,创建的就是一个we部application,能听懂吧?啊,行啊,好,We部application context,这个大家注意啊,好,那我们现在呢,是通过我们当前咱们的contact load来获取了我们的web application context的对象,好,然后在这呢,通过我们当前的web application context的来获取我们的solve context对象,然后通过咱们的这一个类型啊,去创建了一个template。
10:24
一个对象,这个大家注意啊,简单看一下就行,然后下面咱们有了咱们的template的resource模板解析器之后,大家看跟咱们原来设置的还一样不一样了,看看是不是有四个属性对吧?然后看这咱们所设置的是不是应该也是四个属性,有问题没有,没有问题吧,大家想嘛,你在这个地方property,这不就是set注入嘛,对不对,不就是来调用咱们当前这个属性的set方法来为属性赋值吗?大家说对不对啊,对吧,所以说我们在配置文件中,咱们是这样去写的,那我们当前咱们在咱们的这个配置类里面,咱们是不是应该就这样去写,通过set方法为属性赋值,能看懂吧,好OK啊,行,那咱们有了它之后,大家说我们下面咱们是不是就可以来创建谁了,就可以创建咱们的这个了,叫做spring template engine,对不对,对吧?好,所以说下边大家再看咱们在这看看engine是什么意思,引擎的意思对不对,来创建一个spring的模板引擎,然后大家看你看这个地方啊,来。
11:38
这是不是有参数呀?刘程老师,这参数是从哪来的?你看我当前我的这个方法,这肯定不是咱们自己调用的,对不对,对吧?那肯定是由spring帮助我们调用的,那spring在帮助我们进行调用的时候,那大家来想啊,那它是怎么来为我们当前的这个参数进行赋值的呢?大家注意,这个参数它就相当于什么,我们当前的参数类型是什么,然后咱们的spring就会在IOC容器中去找到一个B来为我们当前的参数进行赋值,所以说这个东西就相当于我们原来所讲过的自动装配,能听懂不能听懂不就相当于咱们原来讲过的自动装配啊,你比如说我在这儿我把这个东西给它删掉算了,咱们换一个类型吧,行不行?呃,咱们在这来换一个,比如说我换一个multi part multi part fair。
12:39
来,咱们这样写来,随便换一个类型,好,我鼠标放上去之后,大家看这叫啥,Could not out too well,能看懂不?什么意思啊,叫做不能自动装配,所以说我们当前在一个方法中所使用的参数,它必须是能够符合自动装配的规则的,能听懂不?也就是说这里面咱们能够咱们所能够使用的参数,它必须得是谁必须得是谁,必须得是我们当前的spring的IOC容器中所拥有的这个B,然后这个时候这个B能为这个参数赋值的情况下,咱们才能够加这个参数,能听懂吧,能听懂不OK啊,行,那大家说有没有能为它赋值的,咱们上面这个B的类型是不是就是I play receive,能看懂好,OK,所以说这个B就会为这个参数扶持,那咱们的这个方法,有了这个参数的赋值,我们是不是就可以去创建一个spring?
13:39
Template的一个引擎了,能看懂吧,好OK,来创建它之后,你说这里面咱们也没写啥,这个地方不就是来先找到先创建对象,再为我们的这个属性赋值嘛,是不是啊,对吧,好啊行。那有了引擎之后,那我们下面。
14:01
就可以干什么了,是不是就可以来创建我们的视图解析器了,哎,大家说这个。这个属性咱们是不是也已经有值了呀,是吧?所以说我们下面来创建一个B,然后这个B呢?然后大家看返回的就是一个view resourcever对象,好,然后它的括号里面是不是需要一个spring templ engine,大家看这个方法的返回值是它不是是这个类型,不是,是那是这个类型,那我们当前的这个参数有没有B来为它进行赋值,有有OK就可以了。然后下面大家看,首先咱们是不是先创建一个对象,什么对象similarmer view叫做similarmer live view receivever,对不对,因为咱们现在用的是s Le视图嘛,对不对?好,然后再往下大家看来设置它的编码UTF杠八,然后再将我们当前的引擎进行赋值,然后来返回一个view server,那所以说咱们来设置这两个B,其实都是为了我们最终去创建它来生成的,能看懂吗?哎,好啊,行,这个大家能。
15:09
看懂吗?大家需要注意一点,因为这里面的代码说实话咱们看到这个过程,其实我们也能根据这个过程自己去把它给写出来,因为咱们现在已经知道了它的依赖关系,我要想有它,我就得创建它,我要想创建它,我就得先创建它,大家说是不是啊,对吧?所以说我们也可以按照这个过程自己把它给写出来,所以说这个代码其实都是固定的,但是有一点是我们配置类里面的一些语法,我建议大家要知道,就是我们在这个方法,咱们来配置这个bin的方法的参数位置,所写的参数是通过什么方式来进行的赋值啊,自动装配进行的赋值能听懂吧?哎,自动装配进行的赋值啊,好OK,大家看这个能看懂不能看懂不啊?
我来说两句