Spring Boot中的Dispatcher Servlet

use*_*483 8 spring spring-boot

在包装类型为war的Spring Boot应用程序中,我正在配置Spring MVC.据我所知,我们不必手动配置Dispatcher Servlet.但是,我用旧的web.xml样式我用来配置Dispatcher Servlet然后我用来传递contextClass和contextConfigLocation如下

<servlet>
    <description>
    </description>
    <display-name>DispatcherServlet</display-name>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <description>contextClass</description>
        <param-name>contextClass</param-name>
        <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
    </init-param>
    <init-param>
        <description>contextConfigLocation</description>
        <param-name>contextConfigLocation</param-name>
        <param-value>com.xxx.yyy.jdorderspringmvcweb.config.SpringMvcConfig</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>      
Run Code Online (Sandbox Code Playgroud)

我相信这是为了表明SpringMvcConfig(我的Spring mvc配置的自定义类)是Spring MVC的配置类.

但是,在Spring boot中,如果自动配置Dispatcher Servlet,我如何将自定义类传递给调度程序Servlet?

在我的Spring Boot应用程序中,我的SpringMvcConfig类从WebMvcConfigurerAdapter扩展并使用@Configuration类进行注释

需要帮助...

小智 0

在由@Configuration注释的配置类中,您可以定义您的dispatcherServlet并将init参数传递给它。

@Bean
public ServletRegistrationBean dispatcherServletRegistration() {
    ServletRegistrationBean registrationBean = new ServletRegistrationBean(dispatcherServlet());
    registrationBean.addInitParameter("contextClass","org.springframework.web.context.support.AnnotationConfigWebApplicationContext");  
    registrationBean.addInitParameter("contextConfigLocation","com.xxx.yyy.jdorderspringmvcweb.config.SpringMvcConfig");
    return registrationBean;
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是创建参数映射,然后为注册 bean 设置参数。流展示了如何做到这一点。

  • 你还没有回答问题。您的代码显示“dispatcherServlet()”,但没有说明这是什么或如何定义它 - 这就是问题所问的内容。 (5认同)