#ANNOTATION
주석처럼 코드에 달아 의미를 부여하거나 기능을 주입할 수 있음. (추후에 다시 학습)
이클립스 화면 File>>new에서 annotation 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package com.sist.ann;
//스프링에서 주로 사용
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Retention(RUNTIME)
@Target(METHOD)
public @interface RequestMapping {
public String value();
}
|
cs |
클래스를 만들고 그안에 CRUD 메소드 저장
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
|
package com.sist.ann;
import java.lang.reflect.Method;
import java.util.*;
public class UserMain2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("요청:");
String ss=sc.next();
try {
Class clsName=Class.forName("com.sist.ann.MovieModel");
//클래스 정보읽기
Object obj=clsName.newInstance();
//메소드 찾기(java.lang.reflect)
Method[] methods=clsName.getDeclaredMethods();
for(Method m:methods) {
//System.out.println(m.getName());
RequestMapping rm=m.getAnnotation(RequestMapping.class);
if(rm.value().equals(ss)) {
m.invoke(obj, null);
}
}
}catch(Exception ex) {}
}
}
|
1. annotation으로 소환
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
|
package com.sist.ann;
import java.lang.reflect.Method;
import java.util.*;
public class UserMain {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("요청:");
String ss=sc.next();
try {
Class clsName=Class.forName("com.sist.ann.MovieModel");
//클래스 정보읽기
Object obj=clsName.newInstance();
//메소드 찾기(java.lang.reflect)
Method[] methods=clsName.getDeclaredMethods();
for(Method m:methods) {
//System.out.println(m.getName());
RequestMapping rm=m.getAnnotation(RequestMapping.class);
if(rm.value().equals(ss)) {
m.invoke(obj, null);
}
}
}catch(Exception ex) {}
}
}
|
cs |
2. if문. 완전 동일
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package com.sist.ann;
import java.util.*;
public class UserMain {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("사용자 요청:");
String ss=sc.next();
MovieModel mm=new MovieModel();
if(ss.equals("a")){
mm.list();
}else if(ss.equals("b")){
mm.delete();
}else if(ss.equals("c")){
mm.find();
}else if(ss.equals("d")){
mm.update();
}else if(ss.equals("e")){
mm.insert();
}
}
}
|
cs |
console창 결과
사용자 요청:a 목록 출력! |
'Java > Java 이론 정리' 카테고리의 다른 글
[Java] 31~33일차: IO (0) | 2020.07.27 |
---|---|
[Java] 30일차: java.util / collection framework (0) | 2020.07.24 |
[Java] 28~29일차: java.lang (1) | 2020.07.22 |
[Java] 예외처리 (1) | 2020.07.20 |
[Java] 21~22일차: 객체지향 3대요소_캡슐화, 상속, 다형성 (0) | 2020.07.13 |
댓글