WebMvcConfig

package cn.xx.yy;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@EnableWebMvc
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/static/dist/"};

/*
@Bean
public ServletWebServerFactory servletWebServerFactory(){
return new TomcatServletWebServerFactory();
}
*/

@Bean
public ServletRegistrationBean servletRegistrationBean() {
ServletRegistrationBean bean = new ServletRegistrationBean(new DispatcherServlet());
bean.setOrder(1);
List<String> urlPattern = new ArrayList<>();
urlPattern.add("/*");
bean.setName("dispatcher");
bean.setUrlMappings(urlPattern);
return bean;
}


@Bean
public ServletListenerRegistrationBean bootstrapListenerBean(){
ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new BootstrapListener());
return bean;
}

@Bean
public ServletListenerRegistrationBean contextLoaderListenerBean(){
ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new ContextLoaderListener());
return bean;
}

@Bean
public FilterRegistrationBean encodingFilterBean() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new CharacterEncodingFilter());
registration.setName("encoding");
Map<String, String> initParam = new HashMap<>();
initParam.put("encoding", "UTF-8");
registration.setInitParameters(initParam);
registration.addUrlPatterns("/*");
return registration;
}

@Bean
public FilterRegistrationBean metricsFilterBean() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new MetricsFilter());
registration.setName("metrics");
registration.addUrlPatterns("/*");
return registration;
}

@Bean
public FilterRegistrationBean permissionFilterBean() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new PermissionFilter());
registration.setName("permission");
registration.addUrlPatterns("/*");
return registration;
}

@Bean
public FilterRegistrationBean seqIdServletFilterBean() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new SeqIdServletFilter());
registration.setName("seqIdServlet");
registration.addUrlPatterns("/*");
return registration;
}


/**
* 不加这个ok.htm没法显示
* @param configurer
*/
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}

/**
* 增加静态资源处理器
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler(new String[]{"/**"}).addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
}
}
posted @ 2019-06-26 19:45  牧之丨  阅读(4244)  评论(0编辑  收藏  举报