전체 글

Project

[Project Winter/#9] Dependency Injection 기능 개발(IoC)

Project Winter DI 기능을 구현하며 드디어 계획했던 기능을 모두 구현했다. 스프링의 핵심이라고 할 수도 있는 IoC 역할을 구현해서 결합도도 낮추고 개발 편의성을 낮출 수 있도록 했다. @Autowired @Target({ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR}) @Retention(RetentionPolicy.RUNTIME) public @interface Autowired { } @Autowired 애노테이션을 개발해 의존성 주입을 해줄 생성자, 필드, 메서드에 애노테이션을 명시할 수 있도록 했다. 이 애노테이션이 붙은 생성자, 필드, 메서드는 백엔드 컨테이너에서 빈 주입을 해주면 된다. BeanFactory 수정 ..

Project

[Project Winter/#8] HandlerExceptionResolver 기능 개발

Project Winter 계획했던 기능 중 MVC 로직에 직접적인 영향을 주는 기능으로 마지막이었던 기능인 HandlerExceptionResolver 기능을 마무리했다. 스프링의 모든 ExceptionResolver 를 구현하진 못했지만 기본적인 HandlerExceptionResolver 인터페이스를 통해 예외를 핸들링하도록 구현했다. HandlerExceptionResolver public interface HandlerExceptionResolver { ModelAndView resolveException(HttpServletRequest req, HttpServletResponse res, Object handler, Exception ex); } 개발자가 예외를 핸들링 로직을 정의할 인터페이..

Project

[Project Winter/#7] Configurer, Interceptor 기능 개발

Project Winter MVC 의 기본적인 기능은 마무리 했고 Interceptor 를 구현할 차례이다. 사실 MVC 와 Ioc, DI 정도만 할걸.... 하는 후회가 조금 들지만 막상 구현을 끝내면 성취감도 좋고 계획한건 마무리 하는 성격이라 열심히 진행중이다. Interceptor 를 하기 앞서 Spring 은 WebMvcConfigurer 를 구현한 클래스에서 addInterceptors() 메서드를 통해 HandlerInterceptor 를 등록하기 때문에 Configurer 기능을 먼저 개발했다. WebMvcConfigurer public interface WebMvcConfigurer { default void addInterceptors(InterceptorRegistry registry..

djawnstj
djawnstj.log