在web.xml中定义DispatcherServlet

默认按名字找Dispatcher Servlet配置文件

程序清单7.3:
在这里插入图片描述
ContextLoaderListener和DispatcherServlet各自都会加载一个Spring应用上下文。上下文参数contextConfigLocation指定了一个XML文件的地址

这个文件定义了根应用上下文,它会被ContextLoaderListener加载。
如程序清单7.3所示,根上下文会从“WEB-INF/spring/root-context.xml”中加bean定义。
DispatcherServlet会根据Servlet的名字找到一个文件,并基于该文件加载应用上下文。

在程序清单7.3中,Servlet的名字是appServlet,因此DispatcherServlet会从“WEB-INF/appServlet-context.xml”文件中加载其应用上下文。

指定DispatcherServlet配置文件

如果你希望指定Dispatcher Servlet配置文件的位置的话,那么可以在Servlet上指定一个contextConfigLocation初始化参数

例如,如下的配中,DispatcherServlet会从“WEB-INF/spring/appServlet/servlet-context.xml”加载它的bean:
在这里插入图片描述

使用基于Java的配置

要在Spring MVC中使用基于Java的配置,也就是让SpringMVC在启动的时候,从带有@Configuration注解的类上加载配置。

我们需要告诉DispatcherServletContextLoaderListener使用AnnotationConfigWebApplicationContext,这是一个WebApplicationContext的实现类,它会加载Java配置类,而不是使用XML

要实现这种配置,我们可以设置contextClass上下文参数以及DispatcherServlet的初始化参数

contextClass参数指定了我们使用的是哪个实现了SpringServletContainerInitializer的类来做配置,(这句话可以看Serverlet配置在Spring中的继承实现顺序

contextConfigLocation指定了对应上下文的真正定义(这句话可以看Spring的两个上下文

如下的程序清单展现了一个新的web.xml,在这个文件中,它所搭建的Spring MVC使用基于Java的Spring配置:
在这里插入图片描述在这里插入图片描述上面两个箭头是ContextLoaderListener的上下文相关
下面两个箭头是DispatcherServelet的上下文相关

下面第一个箭头和上面第一个箭头,指向的属性contexClass使用AnnotationConfigWebApplicationContext意味着我们要使用JAVA的@Configuration配置

上面第二个箭头和下面第二个指向属性contextConfigLocationWebConfig意味着我们具体使用的是那个配置类

ContextLoaderListener的上下文使用的RootConfig
DispatcherServelet上下文使用的是WebConfig

发布了52 篇原创文章 · 获赞 9 · 访问量 6232

猜你喜欢

转载自blog.csdn.net/weixin_43553694/article/details/104277813
今日推荐