曖昧度の低い順番に優先される
- /hotels/new
- /hotels/{hotel}
- /hotels/*
変数の少ない順に並び、ワイルドカードを含む場合は一番優先度が低くなる
/users/1/news
というURLにアクセスするとき
@Controller
@RequestMapping(value = "/users")
public class UserController {
// 一番優先される
@RequestMapping(value = "/1/news", method = {RequestMethod.GET, RequestMethod.HEAD})
public String aaa() {
return "user/news";
}
// 2番目
@RequestMapping(value = "/{id}/news", method = {RequestMethod.GET, RequestMethod.HEAD})
public String bbb(@PathVariable String id) {
return "user/news";
}
// 3番目
@RequestMapping(value = "/{id}/{type}", method = {RequestMethod.GET, RequestMethod.HEAD})
public String ccc(@PathVariable String id) {
return "user/news";
}
// 一番優先されない
@RequestMapping(value = "/**", method = {RequestMethod.GET, RequestMethod.HEAD})
public String ddd(@PathVariable String id) {
return "user/news";
}
}
ドキュメント
http://docs.spring.io/spring/docs/4.2.x/javadoc-api/org/springframework/util/AntPathMatcher.html