작성
·
1.7K
·
수정됨
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가 나오는지 궁금합니다...
답변 3
4
강의 마지막에 추가한 스프링 부트 3에서 강의 예제를 따라할 때 주의할 점에서 설명한 내용이네요.
스프링 부트 3에서 스프링 버전이 업데이트가 되면서 @RequestMapping만으로 DispatcherServlet이 인식하던 기능이 더 이상 지원되지 않고 @Controller까지 등록이 필요하게 바뀌었습니다. 그래서 @RequestMapping만 있을 때 스프링 컨트롤러로 등록이 안 되어서 에러가 나게됩니다.
스프링은 구 버전 코드의 호환성을 잘 지키는 편인데 이번 변경은 그래서 아쉬움이 있습니다.
강의 예제는 부트 3이 나오기 전에 2.7 버전을 기준으로 테스트 하고 영상을 만든 것이라, 사소한 것이지만 몇 가지 차이점이 있습니다. 관련 내용을 강의 제일 마지막에 추가해두었으니 참고해보세요.
0
저도 이번 챕터 보다가 동일하게 오류발생해서 버전 차이인 것 같았는데 요런 답변이 있었군요 감사합니다.
혹시 토비님이 말씀주신 SpringBoot3에서 DispatcherServlet의 하위호환 안되는 내용 공식문서에도 나와있을까요?
관련해서 키워드로 많이 찾아봤는데 잘 안찾아져서요..
0
예전에 본 기억이 있는데 지금은 공식문서 검색으로는 발견할 수가 없네요. 좀 더 살펴보고 관련 내용을 찾으면 답변을 남기도록 하겠습니다.