Project Winter 지난 #3-Contoller 기능 구현 중 문제에서 생긴 bean 관련 문제를 해결하고 다시 컨트롤러 기능을 구현했다. 원랜 인터페이스 기반 컨트롤러 기능만 일단 구현하려 했지만 bean 기능을 구현한 김에 애노테이션 기반 컨트롤러까지 진행했다. 컨트롤러 인터페이스 기반 컨트롤러 인터페이스 package com.project.winter.mvc.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public interface Controller { String handleRequest(HttpServletRequest req, HttpServl..
Project Winter 원래 애노테이션 기반으로 싱글톤 빈을 런타임시에 생성/관리 해주는 기능은 프로젝트 막바지에 개발하려 했다. 하지만 지난번 컨트롤러 기능 개발 중 컨트롤러 매핑 문제가 있었고, 문제 해결 방법으로 @Configuration 애노테이션이 붙은 설정 클래스에서 컨트롤러를 매핑해주기로 했다. 이 기능을 구현하기 위해 애노테이션 기반 빈 객체 생성 기능을 먼저 개발하였다. Annotation 우선 애노테이션은 위와 같이 다섯개를 미리 만들어 뒀다. @Component @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Component { } 애플리케이션이 실행하면서 생성할 빈을 찾을 때, @..
Project Winter Controller 기능 개발 서버 기능을 구현 후 예정대로 Controller 기능 개발을 하던 중 문제를 만났다. Controller interface Controller { public Object handle(HttpServletRequest req, HttpServletResponse res); } 이렇게 컨트롤러 인터페이스를 만들고 이를 구현한 컨트롤러 클래스들을 실제 핸들러로 사용하고자 했다. HandlerMapping public interface HandlerMapping { void init(); Object findHandler(HttpServletRequest req); } HandlerMapping 을 구현한 클래스로 http method, uri 를 C..