WHY :
为什么我们需要快捷定义 ViewController ?
在项目开发过程中,经常会涉及页面跳转问题,而且这个页面跳转没有任何业务逻辑过程,只是单纯的路由过程 ( 点击一个按钮跳转到一个页面 ) 。
常规写法如下:
@RequestMapping("/toview")
public String view(){
return "view";
}
如果项目中有很多类似的无业务逻辑跳转过程,那样会有很多类似的代码。
HOW :
如何可以简单编写,这种代码?
Spring MVC 中提供了一个方法,可以把类似代码统一管理,减少类似代码的书写(根据项目要求,或者代码规范,不一定非要统一管理页面跳转,有时会把相同业务逻辑的代码放在一个类中)。
实现 WebMvcConfigurer 接口的 addViewController方法(Spring2.X不再通过继承WebMvcConfigurerAdapter
的DemoMVCConfig
类然后重载addViewControllers来实现
)
WebMvcConfigurer 接口是用来在spring boot 中扩展 spring mvc 功能的,因为
当我们写了新的配置,spring boot是将新的配置组合进它原本的对应的自动配置中,比如原本自动配置类里有三个配置,我们写了一个新配置,启动时就会自动配置这四个配置,优先用用户自己的
源码:
default void addViewControllers(ViewControllerRegistry registry) {}
实例:
public class MyMvcConfig implements WebMvcConfigurer {
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/atguigu").setViewName("success");
}
}
以上代码等效于第一种写法。