六.MVC配置
此处主要以拦截器为例
1.LogController
@RestController
@RequestMapping("/log")
public class LogController {
@RequestMapping("/add")
public String add(){
return "<h1>Hello add</h1>";
}
@RequestMapping("/remove")
public String remove(){
return "<h1>Hello remove</h1>";
}
@RequestMapping("/modify")
public String modify(){
return "<h1>Hello modify</h1>";
}
@RequestMapping("/find")
public String find(){
return "<h1>Hello find</h1>";
}
}
2.拦截器
public class LogInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
System.out.println("LogInterceptor.preHandle");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
System.out.println("LogInterceptor.postHandle");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
System.out.println("LogInterceptor.afterCompletion");
}
}
3.配置拦截器
在SpringBoot中不存在XML配置
所有的XML配置项均通经过其他方式进行实现
创建一个配置类,在配置类中对MVC的配置进行实现
该类使用
@Configuration
注解进行标注该类实现
WebMvcConfigurer
接口该接口中提供经MVC配置的相关方法
每一个配置项都有与之对应的方法
@Configuration
public class MyConfig implements WebMvcConfigurer {
// 配置直接访问视图
// @Override
// public void addViewControllers(ViewControllerRegistry registry) {
//
// }
// 配置拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 定义拦截器是谁
registry.addInterceptor(new LogInterceptor())
// 拦截谁,值可以是可变长参数,也可以是字符串集合
.addPathPatterns("/**")
// 不拦截谁,值可以是可变长参数,也可以是字符串集合
.excludePathPatterns("/log/add","/log/remove")
.excludePathPatterns("/log/modify");
}
}