WebAppConfiguration.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package com.uas.report;
  2. import java.nio.charset.Charset;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import org.apache.axis.transport.http.AxisServlet;
  6. import org.springframework.boot.web.servlet.FilterRegistrationBean;
  7. import org.springframework.boot.web.servlet.ServletRegistrationBean;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.ComponentScan;
  10. import org.springframework.context.annotation.Configuration;
  11. import org.springframework.http.MediaType;
  12. import org.springframework.http.converter.HttpMessageConverter;
  13. import org.springframework.http.converter.StringHttpMessageConverter;
  14. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  15. import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
  16. import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
  17. import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
  18. import org.springframework.web.servlet.view.InternalResourceViewResolver;
  19. import com.alibaba.druid.support.http.StatViewServlet;
  20. import com.alibaba.druid.support.http.WebStatFilter;
  21. import com.alibaba.fastjson.serializer.SerializerFeature;
  22. import com.alibaba.fastjson.support.config.FastJsonConfig;
  23. import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
  24. import com.uas.report.filter.FileDeleteFilter;
  25. @Configuration
  26. @ComponentScan(basePackages = "com.uas.report.controller")
  27. public class WebAppConfiguration extends WebMvcConfigurerAdapter {
  28. @Override
  29. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  30. // Spring boot默认资源路径在src/main/resources下,而非/src/main/webapp
  31. // 使用/src/main/webapp下资源均需在此添加
  32. registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
  33. registry.addResourceHandler("/WEB-INF/**").addResourceLocations("/WEB-INF/");
  34. super.addResourceHandlers(registry);
  35. }
  36. @Override
  37. public void configureViewResolvers(ViewResolverRegistry registry) {
  38. InternalResourceViewResolver viewResolver = new InternalResourceViewResolver("/WEB-INF/views/", ".html");
  39. viewResolver.setContentType("text/html;charset=UTF-8");
  40. registry.viewResolver(viewResolver);
  41. super.configureViewResolvers(registry);
  42. }
  43. @Override
  44. public void addViewControllers(ViewControllerRegistry registry) {
  45. registry.addViewController("/").setViewName("index");
  46. registry.addViewController("/console").setViewName("console");
  47. registry.addViewController("/fileUpload").setViewName("fileUpload");
  48. registry.addViewController("/preview").setViewName("preview");
  49. registry.addViewController("/files").setViewName("files");
  50. super.addViewControllers(registry);
  51. }
  52. @Override
  53. public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  54. FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
  55. fastJsonHttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON_UTF8));
  56. FastJsonConfig fastJsonConfig = new FastJsonConfig();
  57. fastJsonConfig.setSerializerFeatures(SerializerFeature.DisableCircularReferenceDetect);
  58. fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
  59. converters.add(fastJsonHttpMessageConverter);
  60. StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(
  61. Charset.forName("UTF-8"));
  62. stringHttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.TEXT_HTML));
  63. converters.add(stringHttpMessageConverter);
  64. super.configureMessageConverters(converters);
  65. }
  66. @Bean
  67. public FilterRegistrationBean fileDeleteFilter() {
  68. FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new FileDeleteFilter());
  69. filterRegistrationBean.addUrlPatterns("/file/delete");
  70. return filterRegistrationBean;
  71. }
  72. @Bean
  73. public FilterRegistrationBean webStatFilter() {
  74. FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
  75. filterRegistrationBean.setFilter(new WebStatFilter());
  76. filterRegistrationBean.addUrlPatterns("/*");
  77. filterRegistrationBean.addInitParameter("exclusions",
  78. "*.js,*.gif,*.jpg,*.png,*.bmp,*.css,*.ico,*.html,/druid/*");
  79. return filterRegistrationBean;
  80. }
  81. @Bean
  82. public ServletRegistrationBean axisServlet() {
  83. ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new AxisServlet(), "/services/*");
  84. servletRegistrationBean.setLoadOnStartup(1);
  85. return servletRegistrationBean;
  86. }
  87. @Bean
  88. public ServletRegistrationBean druidStatViewServlet() {
  89. ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),
  90. "/druid/*");
  91. servletRegistrationBean.addInitParameter("resetEnable", "true");
  92. servletRegistrationBean.addInitParameter("loginUsername", "admin");
  93. servletRegistrationBean.addInitParameter("loginPassword", "select123***");
  94. return servletRegistrationBean;
  95. }
  96. }