2022/01/24 2

java.lang.IllegalStateException: Ambiguous handler methods mapped for '/favicon.ico':

illegalStaeException 은 여러번 본적이 있지만 /favicon.ico는 뭘까? 배포중에 문제가 생겨 다시 로컬에서 부트를 띄우던 도중에 갑자기 위와 같은 에러가 발생했다. 사실 이전에 restapi 들의 경로를 바꿔주었던 작업에서 계속 작은 문제들이 잇따라 발생했는데 혹시 거기서 또 뭔가 발생하지 않았나 짐작하긴했었다. 결론부터 말하면 맞다. Controller의 경로가 중복되었을때 발생하는 고질적인 문제이다. 꼭 경로가 중복된 상황에서만 발생하는게 아니라 이외의 상황에서도 발생할 수 있는 에러이긴 하다. 그런데 신기한 점은 Ambiguous하다는 로그에 있다. 왜 모호하다는 표현을 썼을까? 위의 두 사진을 보면 api의 mapping에서 한군데는 filename이라고 되어있고 한군데는 ..

[SpringBoot] @PathVariable vs @RequestParam

둘 중 뭐가 더 나은지는 사실 성능상 상관없다. 상황에 따라 더 좋은 것을 쓰면 되는데 아주 미묘한 차이가 있다. (사실 이전까지는 뭐 별반 차이없을거라 생각해서 그냥 무작정 @RequestParam 만 잔뜩 써대고 있었다. ) 1. @ParhVariable은 어떠한 Resource를 식별하고 싶다고 하면 그때 사용하면 되는 것이고 2. @RequestParam은 정렬이나 필터링을 할때 사용하면 좋다. 즉 2번의 예시를 들자면 url에 파라미터로 특정 조건에 충족하는 사람만 조회해서 가져오고 싶다면 다음과 같이 쓰면 된다. localhost:8080/test/condition=good 이런 식으로 컨디션이 좋은 사람들만 골라서 가져오겠다는 식으로 말이다. 이럴때 @RequestParam을 쓰면 좋다. 이..

반응형