Spring Controllerの様に「/xxx/**」「/xxx/yyy/*」などのAnt形式のパスとマッチングさせる方法メモ


SpringのControllerのメソッドでは@RequestMappingアノテーションでそのメソッドを発動させるURLパスを書いたりするが、そのURLパスのマッチング機構を自分で使いたいなと思うなど。


Springの中を覗いてみたら、「AntPathMatcher」なるユーティリティクラスがあり、これを使えば良さそう。
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html
https://github.com/spring-projects/spring-framework/blob/master/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java


で、マッチング自体は「AntPathMatcher#match」でイケそうなものの、複数のパスを持っていたときに優先順位はどうやって決めるかなと。


これも中身をよく見てみると「AntPathMatcher#getPatternComparator」なる人がいるので、パスのリストに対してこれで取得したComparatorを渡したsortを適用すれば優先順位の高い順に並んでくれそう。
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html#getPatternComparator-java.lang.String-