-
Notifications
You must be signed in to change notification settings - Fork 305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MVC 구현 - 3단계] 스플릿-박상현 미션 제출합니다. #562
Conversation
…Adapter 추가 현 커밋에서 존재하지 않는 renderWithRequestAndResponse 메서드 e862dfa8f7844d4db2c91c54d3ec46719c0f92d9 커밋 에서 추가
메서드 선언부 컨벤션 변경
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
스플릿 안녕하세요~! 저번 리뷰가 많이 늦어진거 다시한번 사과드립니다..ㅠㅠ 너무 잘 구현해 주셨네요..! 스플릿과 의견 나누면서 저도 많이 배웠습니다! 제의견은 참고만 해주세요! 고생 많으셨습니다!
return new ModelAndView(REDIRECT_INDEX_PAGE_VIEW); | ||
} | ||
return "redirect:/401.jsp"; | ||
return new ModelAndView(REDIRECT_UNAUTHORIZED_VIEW); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
상수 분리 굳..!
|
||
public void setNotFound(final HttpServletResponse response) { | ||
response.setStatus(404); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 부분에 대해서 지난번 리뷰에 이어서 답변하겠습니다..!
음..HandlerExceptionResolver를 인터페이스로 만들고 HandlerNotFoundExceptionResolver를 구현체로 만들어서 DispatcherServletInitializer 클래스에서 해당 Resolver를 추가해주는 방식은 어떨까요?
그리고 말씀해주신 상태코드 수정은 뷰에서 하는 역할인지는 사실 더 고민해봐야 할 것 같네요..ㅠㅠ디스패쳐 서블릿에서 상태코드 변경후 위에서 말한 방식으로 뷰에게 404페이지를 렌더링하는 역할을 넘기는 방법도 있을것같아요..!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
지금 있는 구조에서 해당 부분에 대해서 진행할 수 있게 코드 추가해서 커밋했습니다!!!😊
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리팩토링하기 어려운 부분이라 생각했는데 이렇게 빠르게 해내시다니..감동3...
|
||
public HandlerAdapter getFirstHandleableAdapterForHandler(final Object handler) { | ||
final List<HandlerAdapter> handleableAdaptersForHandler = getHandleableAdaptersForHandler(handler); | ||
if (handleableAdaptersForHandler.isEmpty()) { | ||
throw new HandlerAdapterNotExistException(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
반영 감동..!
|
||
Optional<Object> getHandler(final HttpServletRequest request); | ||
boolean isHandleable(final HttpServletRequest request); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 부분을 따로 공통 매서드로 빼신 이유가 있을까요!?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 메서드가 없으면 HanlderMappings 가 Handler 를 찾는 과정에서 stream 을 통해 실제로 받은 Handler 가 null 인지를 체크하는 방식을 택해야 하더라구요!!😭
개인적으로 null을 다루는 것보다 해당 객체에게 직접 handleable 한지 물어보는 것이 더 바람직하다고 생각하여 해당 메서드를 생성하였습니다!!
final HandlerMapping handlerMapping = handlerMappings.stream() | ||
.filter(mapping -> mapping.isHandleable(request)) | ||
.findFirst() | ||
.orElseThrow(HandlerNotExistException::new); | ||
|
||
return handlerMapping.getHandler(request); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
감동2..
|
||
@DisplayName("/ 경로 요청 테스트") | ||
class HomeControllerTest extends UsingTomcatTest { | ||
@DisplayName("GET 요청시 200 상태코드 와 함께 메인 페이지로 응답한다.") | ||
@Test | ||
void save() { | ||
try (CloseableHttpClient httpClient = HttpClients.createDefault()) { | ||
//given | ||
final HttpGet httpGet = new HttpGet(tomcatUrl + "/"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
꼼꼼한 테스트 역시 꼼꼼
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
스플릿 안녕하세요~! 저번 리뷰가 많이 늦어진거 다시한번 사과드립니다..ㅠㅠ 너무 잘 구현해 주셨네요..! 스플릿과 의견 나누면서 저도 많이 배웠습니다! 제의견은 참고만 해주세요! 고생 많으셨습니다!
SonarCloud Quality Gate failed. 0 Bugs 75.2% Coverage The version of Java (11.0.20.1) you have used to run this analysis is deprecated and we will stop accepting it soon. Please update to at least Java 17. Catch issues before they fail your Quality Gate with our IDE extension SonarLint |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
스플릿 안녕하세요! 고생 많으셨습니다..! 미션을 빠르게 수행해주셨는데 제가 늦어서 많은 피드백을 못드렸었던 부분이 가장 아쉬웠습니다..ㅠㅠ 그래도 얘기를 나누면서 저도 한번더 생각해보게되는 부분들 덕에 더 배울 수 있었습니다 또한 제의견도 잘 반영해주셔서 감사합니다! 이만 머지하겠습니다~!
안녕하세요 채채😊!!
저번 step2 마지막 코멘트들에 답변 했으니 해당 부분 더 얘기해보면 좋을 것 같아요!!👍
이번 리뷰도 잘 부탁드립니다!! 🙇