我正在使用带有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
映射到那个?)