Как создать несколько сервлетов диспетчера, используя Java-конфигурацию Spring MVC

Я использую Spring MVC 4.1 с сервлетом 3.1 и хочу создать два сервлета с использованием конфигурации Java, один для обычного веб-приложения и другой для API остальных. Ниже приведен мой код для инициализатора веб-приложения (эквивалент для web.xml):

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {


@Override
protected String[] getServletMappings() {
    return new String[]{"/web"};
}

@Override
protected Class<?>[] getRootConfigClasses() {
    return new Class<?>[] {RootApplicationConfig.class, SecurityConfig.class};
}

@Override
protected Class<?>[] getServletConfigClasses() {
    return new Class<?>[] {WebMvcConfig.class};
}

@Override
protected Filter[] getServletFilters() {
    CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
    characterEncodingFilter.setEncoding("UTF-8");
    characterEncodingFilter.setForceEncoding(true);

    DelegatingFilterProxy securityFilterChain = new DelegatingFilterProxy("springSecurityFilterChain");
    MultipartFilter multipartFilter = new MultipartFilter();
    return new Filter[] {characterEncodingFilter,multipartFilter, securityFilterChain};
}

@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
    registration.setInitParameter("defaultHtmlEscape", "true");
    registration.setInitParameter("spring.profiles.active", "default");
}

Выше можно будет только зарегистрировать сервлет диспетчера по умолчанию, мне нужно зарегистрировать остальные API, но не нашел хороших предложений.

Каков наилучший способ сделать это, и есть ли другие решения? (думал добавить еще один класс в getServletConfigClasses() как RestMvcConfig, но как сопоставить /api к тому?)

0 ответов

Другие вопросы по тегам