作者:君君-你好 | 来源:互联网 | 2024-12-14 14:53
本文介绍了如何通过自定义配置类,利用`WebMvcConfigurer`接口来扩展SpringMVC的功能,实现默认首页的自动跳转,同时避免使用`@EnableWebMvc`注解全面接管SpringMVC的默认配置。
在 Spring Boot 应用中,我们可以通过创建一个实现了 `WebMvcConfigurer` 接口的配置类来自定义 Web 相关的设置。这里我们将展示如何设置应用启动时的默认访问页面。
```java
// 实现 WebMvcConfigurer 接口以扩展 Spring MVC 功能
@Configuration
public class CustomMvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
// 当访问根路径或指定路径时,重定向到登录页面或仪表盘页面
registry.addViewController("/").setViewName("login");
registry.addViewController("/index.html").setViewName("login");
registry.addViewController("/main.html").setViewName("dashboard");
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加拦截器配置
registry.addInterceptor(new LoginInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/index.html", "/", "/user/login");
}
@Bean
public LocaleResolver localeResolver() {
return new CustomLocaleResolver();
}
}
```
需要注意的是,在上述代码中,我们没有使用 `@EnableWebMvc` 注解,这是因为该注解会完全接管 Spring MVC 的所有默认配置,导致一些内置的功能失效。如果我们只是想添加一些自定义配置,而不希望影响到其他默认行为,那么直接实现 `WebMvcConfigurer` 接口即可。
此外,我们还定义了一个自定义的区域解析器 `CustomLocaleResolver`,用于处理多语言支持等高级功能。通过这种方式,我们可以灵活地控制应用的行为,满足不同的业务需求。