设置请求映射路径
项目结构
ServletConfig
@Configuration
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[0];
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
SpringMvcConfig
@Configuration
@ComponentScan("com.rikka.controller")
public class SpringMvcConfig {
}
BookController
@Controller
public class BookController {
@RequestMapping("/save")
@ResponseBody
public String save(){
System.out.println("book controller save run");
return "book save";
}
}
UserController
@Controller
public class UserController {
@RequestMapping("/save")
@ResponseBody
public String save(){
System.out.println("user controller save run");
return "user save";
}
@RequestMapping("/delete")
@ResponseBody
public String delete(){
System.out.println("user controller delete run");
return "user delete";
}
}
此时运行会报错,因为BookController与UserController中都具有/save路径,所以此处做出调整
@RequestMapping("/user/save")
@RequestMapping("/user/delete")
@RequestMapping("/book/save")
运行:
不过,每一个方法都写同样的前缀路径未免有些麻烦,所以可以简化为
以UserController为例
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/save")
@ResponseBody
public String save(){
System.out.println("user controller save run");
return "user save";
}
@RequestMapping("/delete")
@ResponseBody
public String delete(){
System.out.println("user controller delete run");
return "user delete";
}
}
依然可以正常访问