00:00
好,前面呢,我们用这种方式,那们整合了spring VC,但是我们在实际的spring VC开发中,如果我们以前有配置文件,我们设整C,那么我需要来非常的配置,我前在发可能一些配置,比如我们来写上,比咱们这个mvc defult handler,哎,这个配置的作用呢,就是说啊,将咱们这个spring m VC处理不了的请求交给Tom k。这个呢是对专门针对于咱们这个静态资源的啊,如果我们MVC拦截所有那静态资源拦截,那我们这个静态资源就访问不到了啊,我们用这个配置静态资源就可以访问。我们写过它包括呢,我们写过mvc attention driver,哎,这两个呢,一般是成对出现的,我们这个attention driver呢,它的更多的作用是来C的高功能。
01:06
啊,高级功能,高级功能开启,所以呢,这是咱们这个啊,这两个标签包括呢,我们可能配过很多,比如mvccept啊,我们要配拦截器等等等等,还有我们这个叫视图映射MVC又CR等等等等,也就说呢,我们可能会配置非常多的东西,那我们现在没了这些配置文件,那我们要怎么来做这个事呢?其实也非常简单,我们可以来参照spring mvc的官方文档,官方文档呢,在后边有一个叫mvc con mvc配置,这个配置呢要怎么来做,首先第一个要用这个铸件,相当于来启动我们这个MVC的自定义配置,啊,我们现在呢,就来在这儿来注释一下,那现在呢,我们要自己来定制VC。
02:02
定制咱们这个MVC两步,第一步呢,先来写一个注解叫enable web mvc,你可以来写一个配置类,按线标在这个配置类上,当然呢,你把这个注解呢,也可以直接来放在我们这APP这来写在这都一样的来导进来。Shift o,好,那么呢,这是我们第一步,首先呢,需要这么一个注解,相当于咱们这个开启。啊,我们这个开启spring mvc定制配置功能。包括呢,其实写个它,哎跟我们下边这个一样,你看啊,它在这一块讲每一个的时候,每一个东西相当于我们以前在插里边用了什么呢,就用了它,相当于呢,我们也进入了spring mvc的一些高级功能,哎,我们自定义配置很多东西,那么呢,我们就来用一个它,但是呢,我们接下来要真正的怎么配置啊,配置咱们这个组件,比如我们这个视图解析器。
03:12
解析器包括呢,我们这个视图映射啊,直接无u crl,包括我们这个静态资源映射。静态资源映射拦截器等等等等等等等等,这些东西我们要怎么配呢?哎,我们就参照文档接下来的方式加呢,第二个叫MVCAPI,然后呢,我们可以用一个Java配置类来实现这个接口,这个接口我们实现了以后呢,那我们就来定可以来定制配置了,好我把这个接口拿来,这个拿来呢,我们在这个APP comp,好我们就在它上面直接来实现这个接口,把这个接口呢来导入进来。这个接口的实现我们来添加进来,哎,我们发现这个接口里边规定的这些所有方法,哎,我们都能定制了,比如比如呢,在这儿有配置啊,Pass match,也就是说我们这个路径映射规则的,包括呢,有配置是否开启一步支持的,还有这个default soliding,咱们可以看一下它这就是来配置是否哎开启静态资源的,我们点一个able,就相当于我们写了mvcult handle,包括下边所有所有可以来添加一些自定义的类型转换器以及格式化器的,还有添加我们这个cept拦截器的等等等等,下边都是我们定制配置,但是有时候我们用不了这么多,你看啊,我们把这一实现以后,所有都出来了,来进入这个类。
04:49
我们发现呢,它下面其实有一个叫adapt这个适配器,这个抽象的实现,我们点进来它呢,相当于给我们把这个接口都实现了,只不过每一个方法都是空的,所以呢,我们后来把它用的比较多一点。
05:04
我们呢,就不来实现这个接口了,这个接口里边的东西太多了,我们都得来写。但是呢,并不是说所有东西我们立马都要用到,我就来继承继承我们刚才的这个web mvc,它呢,其实就是我们这个接口旗下的,哎,他已经帮我们实现了,然后呢,我们要定制哪些东西,我们就来啊,复习咱们这里边这些方法就行了,接下来呢,就是我们这个定制环节定制,比如第一个我们来定制视图解析器。制图解析器怎么整呢?来奥特斜杠看一下,这哪些方法能跟视图解析器有关?来往下翻。来找一找,这呢有一个叫5u reserve配置我们这个视图解析器,好这视图解析器呢,我们把这个可以删掉,因为这个负类的方法啊,都是空的,好我们调用它,它里边呢我们可以看,如果我们想要配GSP,哎,我们以前配GSP视图解析器,那这直接有一个方法JSP你可以用它包括呢还能用两个参数的,如果我们直接用它,它的规则,诶前面呢,你看啊,前边这指定的是前缀,后边是后缀,相当于所有的页面都从web英下开始找找所有的JSP,那好我们就来用它的默认所有的页面都从都从咱们这个啊,Webfo webf。
06:39
下开始找找所有的咱们这个GSP页面,这是我们这个,当然我们也可以自己来写规则,res.JSP,哎,指定一个前缀,比如web in,我们也来写web web in下的。点JSP,比如我们把所有的页面都放在S下边,都放在视图这那么呢,我们就来写一个试验一下,我们在web APP下,我们来创建一个文件夹,叫web info web info下呢,你再来创建一个文件夹,那么后来呢,把所有页面都写在这儿,然后呢,我在这个页文件夹下,比如呢,来写一个JSP页面,叫JSP。
07:27
好,如果这个页面呢,响应出来就给它打印一个,我们来在hello controller里边来填一个方法来返回页面的这个string啊。你叫success吧,我们直接来写success,那么呢,它就会跟我们视图解析器指定的那个前后缀进行拼串,来到我们指定的页面快速满屏,哎,比如呢,我们发一个啊Su请求,然后呢,我们这个success就会根据我们之前我们自己来配置的。
08:05
配置的这个前缀,它就会来到这个前缀,哎,相当于来到这儿,下边的GSP就会来到这儿,因为我们配了视图解析器,可以来测试一下这个定制能不能成功呢,好走。好,我们来访问suc回车,哎,我发现来到了success页面,所以呢,我们这个定制配置就是成功的,那接下来剩下的定制配置我们都可以来试上几个比较重要的,比如我们这个静态资源访问。静态资源访问。静态资源访问,那么呢,默认如果说我们这个web APP下有一些静态资源,比如呢,我就来从我们这个电脑上复制上一个图片吧,图片好,那就呢,随便拿一个图片来放在这,如果说页面呢,要引入这个静态资源,那现在是引不进来的。
09:08
我们来写一个image标签,好这个src呢,那就是它,我们来运行这个JSP页面。走。没运行。好,我们发现这个图片显示不出来,与此同时呢,在控制台也会有这个打印叫no map平found,没有找到UPLOAD3GPG的映射,这个呢,请求被spring mvc处理了,他要找request map这些映射,但实际上呢,这是一个静态资源,我们要交给MK,那我们呢,就来做我们的自定义配置好静态资源呢,我们大概看一下,在这一块呢,有一个叫conflict defuling配置咱们这个静态资源,访问静态资源呢,拿到这个直接诶en,那相当于我们这个en的配置,就相当于我们以前在MVC里边写了solid,看到了M写了它,我们把它加上以后呢,我们再来测试看静态资源行不行呢?
10:15
好,我们在这呢,来测试一下。访问首页回车,哎,我们发现这个图片就能引用了,等等等等,那所有其他的配置都是这么来做的,比如呢,我们给大家配置一个复杂的,我们叫拦截器,拦截器,拦截器的话呢,们来写一个,呃,叫intercept,我们给这个re里边。哎,他会给我们传一个RY,那给这里边呢,来添加一个拦截器就行了,那这个拦截器呢,我们来也写一个。My first intercept。Cept,好,要成为这个cept,我们必须得实现MC提供的handlecept接口,好,我们点一个这个intercept,我们这一块写处,那就是放行,这是普handle,它会在目标方法之前执行,方法运行之前执行,然后呢,这是在目标方法之后执行,如果我们这个拦截器执行了,就在这打印一下pre handle。
11:26
包括呢们这个目标方法之后,目标方法运行之后的post看懂,包括呢,我们这个页面啊,响应到页面以后的这个after comp。啊,它会在页面响应以后执行。这个呢,是在目标方法执行以后,方法执行正确以后执行来,我们写了一个拦截器,那如果是以前我们在MVC里边可以用这个标签来配,那么现在呢,我们就用它,我们用它来把我们这个拦截器,我们可以自己来扭过来,当然也可以从容器中拿过来,自动装配进来都行,那我们把这个拦截器就自己扭一个my first intercept,这个拦截器呢,我们创建出来以后呢,关键拦截器要拦哪些请求,那还得在这配置一下,点一个,哎,它有一个叫pass,我们来拦哪些请求,那我们就来拦杠双星,那这个双星呢,意思就是我不管任意多层路径,我来拦任意多的请求,那么呢,这就是咱们这个配置,我们来可以看一下这个拦截器能否生效呢。
12:40
好,我们来启动。启动,启动呢,我们来访问,哎,比如我们来访问suc请求,哎,我们发现拦截器生效了,那其他的配置跟他们其实都是一样的,大家可以结合spring VC的官方文档来你的每一处配置,比如你要配类型转换器的,来你自定义来填一些form convert water,就类似于什么写法,这块呢,说的非常清楚,你调这个方法类似于下边的什么写法,包括呢,我们来配拦截器的,我调这个方法类似于以前我们的怎么写法等等等等更多的东西呢,大家就来参照spring MC的官方文档。
13:22
也就是说呢,我们如果想要定制spring VC,哎,就类似于我们这种写法,我们只需要来继承继承我们这个。BMVC就行了,当然前提是MVC好,这就是我们这个定制spring mvc的规则。
我来说两句