如何使用Spring MVC java配置创建多个Dispatcher Servlet

时间:2015-05-24 11:39:48

标签: java spring spring-mvc spring-java-config

我正在使用带有Servlet 3.1的Spring MVC 4.1,我想使用java配置创建两个servlet,一个用于普通Web应用程序,另一个用于Rest API,下面是我的Web应用程序初始化程序代码(等同于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");
}

以上只能注册一个默认的调度程序servlet,我需要注册其余的api但是没有找到好的建议。

最好的方法是什么,还有其他解决方案吗? (考虑在getServletConfigClasses()中添加另一个类,如RestMvcConfig,但是如何将/api映射到那个?)

0 个答案:

没有答案