spring mvc 有类似 struts2 的通配符跳转配置吗?
<action name="*_*" class=".." method={1}>
每个方法上都加上注解 是很麻烦的.......
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
Spring MVC 与 Struts2 在配置方式上有所不同,Struts2 中广泛使用通配符来简化配置,而 Spring MVC 更倾向于使用注解和基于约定的配置来提高灵活性和减少配置量。尽管 Spring MVC 没有直接等同于 Struts2 通配符跳转配置的功能,但你可以通过一些策略来简化配置,降低每个方法都要单独加注解的繁琐。
@RequestMapping
注解,这样所有该控制器内的请求映射都将以该路径作为前缀。例如:@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/list")
public String userList() {
// ...
return "userList";
}
@RequestMapping("/detail")
public String userDetail() {
// ...
return "userDetail";
}
}
在这个例子中,/user/list
和 /user/detail
的路径前缀都被定义在了类级别,减少了重复性。
利用Ant风格的路径匹配:虽然不是完全意义上的通配符,但 @RequestMapping
支持Ant风格的路径模式,可以用来匹配一组URL。例如,使用 {id:.+}
可以匹配任何非空字符串作为ID。
使用@RestController和@GetMapping、@PostMapping等组合:对于RESTful风格的接口,可以使用 @RestController
替代 @Controller
,并且用更具体的注解(如 @GetMapping
、@PostMapping
等)代替通用的 @RequestMapping
,这不仅使代码更加清晰,也减少了注解的使用数量。
继承基类或使用ControllerAdvice:如果你有很多控制器需要共享相同的逻辑(比如异常处理、数据绑定等),可以创建一个基础控制器类,或者使用 @ControllerAdvice
来集中处理这些逻辑,从而减少每个控制器方法上的注解。
利用Spring Boot的自动配置:如果使用Spring Boot,很多配置都是默认开启的,你甚至不需要显式地声明控制器的扫描路径,进一步简化配置。
综上所述,虽然Spring MVC没有直接提供类似Struts2的通配符跳转配置,但通过上述策略,可以在很大程度上优化和简化你的配置工作。