-
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 미션 1단계] 오리(오현서) 미션 제출합니다. #355
Conversation
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.
안녕하세요 오리!
메서드 분리를 적절하게 잘 해주셔서 코드가 쉽게 잘 읽혔어요 ㅎㅎ
제 코드가 가독성이 안좋다는 것을 깨달아버렸어요🥲
잘해주셔서 크게 리뷰할 만한 부분이 없었네요.
약간의 질문을 남겼으니 확인해주세요!
바로 approve 하겠습니다! 👍
Set<Class<?>> clazz = getClazzByAnnotation(packagePath, Controller.class); | ||
for (Class<?> aClass : clazz) { | ||
List<Method> methods = getMethodsByAnnotation(aClass, RequestMapping.class); | ||
Object instance = getInstance(aClass); |
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.
메서드 분리가 이해하기 쉽게 잘 되어 있어서 좋네요 👍👍
} | ||
} | ||
|
||
private <T extends Annotation> Set<Class<?>> getClazzByAnnotation(Object packagePath, Class<T> annotationClass) { |
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.
메서드명을 getClassByAnnotation
이라고 해도 좋을 것 같아요!
RequestMapping requestMapping = method.getAnnotation(RequestMapping.class); | ||
for (RequestMethod requestMethod : requestMapping.method()) { | ||
HandlerKey handlerKey = new HandlerKey(requestMapping.value(), requestMethod); | ||
handlerExecutions.put(handlerKey, handlerExecution); | ||
} | ||
} |
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.
RequestMapping
어노테이션을 보면 method 디폴트가 빈 배열이여서 만약 RequestMapping
을 사용하는 개발자가 실수로 method를 지정해주지 않는다면 해당 메서드는 등록되지 않겠네요!
이런 경우 get할 때 null을 반환하네요. 이에 대한 예외 처리도 해주면 좋을 것 같은데 어떻게 생각하시나요??
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.
아! 추가적으로 위와 같은 맥락으로 getHandler()를 호출 했을 때 해당하는 핸들러가 없을 때 null을 반환하기 때문에 외부에서 handlerExecution.handle(request, response);
을 할 때 NPE가 뜨게 되는데 null을 반환하는게 좋을까요?
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.
말씀해주신 부분을 놓치고 있었네요!! 다음 단계 들어가면서 관련 로직을 추가해보겠습니다
안녕하세요 밀리 잘부탁드립니다.
1단계는 테스트 하기에도 패키지에 의존하기 때문에 어렵네요..
학습 테스트는 별도 로컬 브랜치에서 해서 커밋이 얼마 없습니다.
구구 커밋 빼고 보기