개발/Spring

프로젝트의 모든 URI 가져오기

신매력 2012. 9. 4. 10:56

URI Logger 관리 때문에, 프로젝트 내의 모든 URI를 가져와야 했다.


@RequestMapping 어노테이션에 써놓았던 URI를 가져오려면....

거기 있는 URI들을 매핑해서 관리하는 클래스가 있다.




 @Autowired

private ApplicationContext ac;


....


RequestMappingHandlerMapping mapping = ac.getBean(RequestMappingHandlerMapping.class);


Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods();



Application Context가 가지고 있는 bean중에 

RequestMappingHandlerMapping  클래스가 uri 정보를 들고 있다.


위 소스 처럼 map으로 저장해놓고,

Key 안에 uri가 들어있으니...  

RequestMappingInfo 클래스에서 꺼내쓰면 된다.


이터레이터 돌리고~

Key만 뽑아 낸 뒤에.

RequestMappingInfo.getPatternsCondition().getPatterns(); 를 하면

Set<String> 형태로 uri들을 뽑아낼 수 있다.




- RequestMappingInfo 레퍼런스


http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfo.html



- PatternsRequestCondition 레퍼런스


http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/mvc/condition/PatternsRequestCondition.html