23.12.08 16:19 작성
·
1.4K
·
수정됨
0
안녕하세요. 어노테이션 매핑정보 사용 강의 보고 궁금한점이 생겨 문의 남겼습니다.
지금까지 강의에 나온것과 똑같이 코드를 작성했습니다. 그런데 실행하면 예상했던 값이 나오지 않고 404 오류가 떠요.
실행창에는 아래와 같은 메세지가 나옵니다.
16:09:26.879 [http-nio-8080-exec-1] WARN org.springframework.web.servlet.PageNotFound -- No mapping for GET /hello
16:09:26.886 [http-nio-8080-exec-1] WARN org.springframework.web.servlet.PageNotFound -- No endpoint GET /hello.
그래서 HelloController 클래스위에 @RequestMapping을 지우고 대신 @Controller을 추가해봤더니 그제서야 강의와 같은 결과가 나옵니다.
제 스프링 버전은 3.x, jdk17인데 이것과 관련이 있을까요? 같은 코드인데 왜 저는 404가 나오는지 궁금합니다...
답변 2
3
2023. 12. 09. 13:41
강의 마지막에 추가한 스프링 부트 3에서 강의 예제를 따라할 때 주의할 점에서 설명한 내용이네요.
스프링 부트 3에서 스프링 버전이 업데이트가 되면서 @RequestMapping만으로 DispatcherServlet이 인식하던 기능이 더 이상 지원되지 않고 @Controller까지 등록이 필요하게 바뀌었습니다. 그래서 @RequestMapping만 있을 때 스프링 컨트롤러로 등록이 안 되어서 에러가 나게됩니다.
스프링은 구 버전 코드의 호환성을 잘 지키는 편인데 이번 변경은 그래서 아쉬움이 있습니다.
강의 예제는 부트 3이 나오기 전에 2.7 버전을 기준으로 테스트 하고 영상을 만든 것이라, 사소한 것이지만 몇 가지 차이점이 있습니다. 관련 내용을 강의 제일 마지막에 추가해두었으니 참고해보세요.