Как правильно настроить веб-приложение Spring MVC при использовании класса конфигурации Java? - PullRequest
1 голос
/ 22 февраля 2012

Я использую Spring MVC через класс @Configuration:

@Configuration
@EnableWebMvc
public class WebConfiguration extends WebMvcConfigurerAdapter {
    // more stuff
}

В моем файле web.xml я создаю ApplicationContext:

<context-param>
    <param-name>contextClass</param-name>
    <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>my.package.WebConfiguration</param-value>
</context-param>

Я также создаю DispatcherServlet, так какследует:

<servlet>
    <servlet-name>mywebapp</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mywebapp</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

Чтобы заставить работать диспетчерский сервлет, мне нужен mywebapp-servlet.xml. Сейчас он пуст.Нужен ли мне файл mywebapp-servlet.xml?

1 Ответ

4 голосов
/ 22 февраля 2012

Вам не нужен файл XML. Но вы должны сказать Диспетчеру не искать файл по умолчанию:

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<context-param>
    <param-name>contextClass</param-name>
    <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>my.pack.WebConfiguration</param-value>
</context-param>

<servlet>
    <servlet-name>mywebapp</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value></param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mywebapp</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

Только для вашей информации: на самом деле, в Servlet 3 web.xml также больше не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...