SpringMvcConfig.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package space.anyi.config;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.ComponentScan;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  6. import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
  7. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  8. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  9. import org.thymeleaf.spring5.SpringTemplateEngine;
  10. import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
  11. import org.thymeleaf.spring5.view.ThymeleafViewResolver;
  12. import org.thymeleaf.templatemode.TemplateMode;
  13. /**
  14. * @fileName: SpringMvcConfig
  15. * @projectName: SSM_template
  16. * @package: space.anyi.config
  17. * @author: 杨逸
  18. * @date:2026/4/24 14:02
  19. * @description: SpringMvc配置类替代spring-mvc.xml
  20. */
  21. @Configuration
  22. @ComponentScan(basePackages = {"space.anyi.controller"}) // 扫描Controller
  23. @EnableWebMvc // 启用Spring MVC注解
  24. public class SpringMvcConfig implements WebMvcConfigurer {
  25. // 配置视图解析器
  26. @Bean
  27. public ThymeleafViewResolver thymeleafViewResolver(SpringTemplateEngine templateEngine){
  28. ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
  29. viewResolver.setTemplateEngine(templateEngine);
  30. viewResolver.setCharacterEncoding("UTF-8");
  31. viewResolver.setCache(false);
  32. return viewResolver;
  33. }
  34. //模板引擎
  35. @Bean
  36. public SpringTemplateEngine templateEngine(SpringResourceTemplateResolver templateResolver) {
  37. SpringTemplateEngine templateEngine = new SpringTemplateEngine();
  38. templateEngine.setTemplateResolver(templateResolver);
  39. templateEngine.setEnableSpringELCompiler(true);
  40. return templateEngine;
  41. }
  42. //模板解析器
  43. @Bean
  44. public SpringResourceTemplateResolver templateResolver() {
  45. SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
  46. templateResolver.setPrefix("classpath:/templates/");
  47. templateResolver.setSuffix(".html");
  48. templateResolver.setTemplateMode(TemplateMode.HTML5);
  49. templateResolver.setCharacterEncoding("UTF-8");
  50. templateResolver.setCacheable(false);
  51. return templateResolver;
  52. }
  53. // 配置静态资源处理
  54. @Override
  55. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  56. registry.addResourceHandler("/static/**")
  57. .addResourceLocations("/static/");
  58. }
  59. // 配置拦截器(可选)
  60. @Override
  61. public void addInterceptors(InterceptorRegistry registry) {
  62. //registry.addInterceptor(new LoginInterceptor())
  63. // .addPathPatterns("/**")
  64. // .excludePathPatterns("/login", "/register");
  65. }
  66. }