[Java] 56. HTTP 서버에 Reflection & Annotation 활용
·
Java/Reflection, Annotation
HTTP 서버 활용#Java/adv2/HTTP/HTTP 서버7 - 애노테이션 서블릿1 - 시작 : 애노테이션을 이용하여 ReflectionServlet의 문제점을 개선해보자.애노테이션@Retention( RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)@Documentedpublic @interface Mapping { String value();}AnnotationServletpublic class AnnotationServletV1 implements HttpServlet { private final List controllers; public AnnotationServletV1(List controllers) { this.con..
[Java] 55. 애노테이션
·
Java/Reflection, Annotation
애노테이션#Java/adv2/애노테이션이 필요한 이유리플렉션으로 해결하지 못했던 문제들요청 이름과 메서드 이름을 다르게 하고 싶다면?/ , /favicon.ico 와 같이 자바 메서드 이름으로 처리하기 어려운 URL은 어떻게 처리할까?해결 방안: 메서드에 추가 정보를 적어두고, 추가 정보를 통해 메서드를 리플렉션으로 찾고 호출해보자.프로그램 실행 중에 읽어서 사용할 수 있는 주석이 필요하다. 애노테이션/애노테이션 예제package annotation.mapping;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;@Rete..
[Java] 54. 리플렉션(Reflection)
·
Java/Reflection, Annotation
리플렉션#Java/adv2/리플렉션이 필요한 이유기존 WAS의 문제점기존 커맨드 패턴 하나의 클래스에 하나의 기능새로 커맨드 클래스를 만들때마다 URL 경로와 클래스를 매핑해야 함.해결 방법: 하나의 클래스 안에서 다양한 기능을 처리하는 것.메서드와 경로를 어떻게 매핑할까? 리플렉션을 이용해 URL 경로와 같은 이름의 메서드를 호출하자./클래스와 메타데이터리플렉션(Reflection): 클래스가 제공하는 다양한 정보를 동적으로 분석하고 사용하는 기능"반사하다" 또는 "되돌아보다”. 프로그램이 자기 자신의 내부를 “반사하여” 들여다본다.프로그램이 실행 중에 자기 자신의 구조를 들여다보고, 그 구조를 변경하거나 조작할 수 있는 기능프로그램 실행 중에 클래스, 메서드, 필드 등에 대한 정보를 얻거나, ..