Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- katalon 비교
- 재귀 예제
- 한국투자증권 양도세 신고
- bfs 미로탐색 java
- recursion example
- java.sql.SQLSyntaxErrorException
- 한국투자증권 해외주식 양도세
- 국세청 해외주식 양도세 신고방식
- git 연동
- 피보나치함수 예제
- 해외증권 양도세 한국투자증권
- tomcat log
- js 자동완성
- 주식 양도세 신고방법
- katalon 자동화
- 피보나치함수
- 최대공약수 예제
- 해외주식 양도세 신고
- 홈택스 해외주식 양도세
- katalon
- 톰캣 실시간 로그
- javascript 자동완성
- Katalon Recorder 사용법
- CSTS 폭포수 모델
- katalon 사용법
- 테스트 자동화
- katalon xpath
- oracle group by
- 재귀함수 예제
- 피보나치 예제
Archives
- Today
- Total
엄지월드
RequestMapping Annotation 구현 본문
리플렉션을 활용하여 간단하게 RequestMapping을 구현해보아야겠다.
Annotation 생성 코드
- @Target(value = ElementType.METHOD)를 통해서 메소드 위에 사용할 Annotation임을 명시해준다.
- @Retention(RetentionPloicy.RUNTIME)을 통해서 해당 어노테이션의 생명 주기를 지정해 준다.
여기서는 RUNTIME 으로 썻기 때문에 런타임 시에까지 계속 지정이 된다.
package Custom;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(value = ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RQ {
String url();
}
메소드 위에 Annotation을 선언해준다.
package Custom;
public class People {
@RQ(url = "test")
public void method1(){
System.out.println("test");
}
@RQ(url = "add")
public void method2(){
System.out.println("add");
}
}
선언한 Annotation을 호출하기 위해서 리플렉션을 활용해서 Annotation이 있는지 확인하고, 있으면 RQ.url()을 호출해서 값을 가져온다.
package Custom;
import java.lang.reflect.Method;
public class test {
public static void main(String[] args) throws ClassNotFoundException {
test t = new test();
t.solution();
}
public void solution() throws ClassNotFoundException {
// People Class의 정보를 읽어오기 위해 forName에 위치를 지정해준다.
Class<?> cls = Class.forName("Custom.People");
// 해당 클래스에 있는 메소드 목록을 가져온다.
Method[] methods = cls.getDeclaredMethods();
for(Method method : methods){
// 만약 RQ 어노테이션이 존재하면
if(method.isAnnotationPresent(RQ.class)){
RQ rq = method.getAnnotation(RQ.class);
// RQ로 선언한 url 값을 가져온다.
System.out.println(rq.url() +" "+method.getName());
}
}
}
}
실행된 화면
System.out.println(rq.url() +" "+method.getName());
'java > Spring' 카테고리의 다른 글
Comments