spring 사용자 정의 설명

4964 단어 spring주해
1. 주해 란 무엇 인가
Annontation 은 자바 5 가 도입 하기 시작 한 새로운 특징 으로 모든 정보 나 메타 데이터 (metadata) 를 프로그램 요소 (클래스, 방법, 구성원 변수 등) 와 연결 시 키 는 안전 한 주석 과 유사 한 메커니즘 을 제공 합 니 다.프로그램의 요소 (클래스, 방법, 구성원 변수) 에 더욱 직관 적 이 고 명확 한 설명 을 더 하기 위해 이런 설명 정 보 는 프로그램의 업무 논리 와 무관 하고 지정 한 도구 나 프레임 워 크 에 사용 된다.Annontation 은 일종 의 수정자 처럼 가방, 유형, 구조 방법, 방법, 구성원 변수, 파라미터 와 로 컬 변수의 성명 문 에 응용 된다.
주해 자 체 는 기능 이 없 는 것 입 니 다. xml 과 마찬가지 로 주 해 는 xml 와 같은 메타 데이터 입 니 다. 메타 데 이 터 는 데 이 터 를 해석 하 는 데이터 입 니 다. 속칭 설정 이 라 고 합 니 다. 자바 주 해 는 코드 에 추 가 된 메타 정보 로 일부 도구 가 컴 파일, 실행 할 때 해석 하고 사용 하 며 설명, 설정 기능 을 합 니 다.주 해 는 코드 의 실제 논리 에 영향 을 주지 않 고 보조 적 인 역할 만 한다.java. lang. annotation 패키지 에 포함 되 어 있 습 니 다.
 
2. 주해 의 용도
a. 문서 생 성.이것 은 가장 흔히 볼 수 있 는 것 이자 자바 가 최초 로 제공 한 주해 이다.@ param @ return 등 b, 추적 코드 의존성 을 사용 하여 대체 프로필 기능 을 실현 합 니 다.예 를 들 어 Dagger 2 는 주입 에 의존 하고 미래 자바 개발 은 대량의 주석 설정 을 사용 하여 큰 도움 이 될 것 입 니 다.c. 컴 파일 할 때 형식 검 사 를 합 니 다.@ override 를 방법 앞 에 두 면 이 방법 이 초 류 방법 을 덮어 쓰 지 않 았 다 면 컴 파일 할 때 확인 할 수 있 습 니 다.    
3. 주해 의 원리
주해 본질은 Annotation 을 계승 한 특수 인터페이스 로 그 구체 적 인 실현 류 는 자바 가 실 행 될 때 생 성 된 동적 에이전트 류 이다.반 사 를 통 해 주 해 를 가 져 올 때 자바 가 실 행 될 때 생 성 된 동적 프 록 시 대상 $Proxy 1 을 되 돌려 줍 니 다.프 록 시 대상 을 통 해 사용자 정의 주석 (인터페이스) 을 호출 하 는 방법 은 AnnotationInvocation Handler 의 invoke 방법 을 최종 적 으로 호출 합 니 다.이 방법 은 memberValues 라 는 맵 에서 해당 하 는 값 을 색인 합 니 다.member Values 의 출처 는 자바 상수 탱크 입 니 다.
 
 
JAVA 는 자주 사용 하 는 4 가지 원 주 해 를 제공 합 니 다.
java. lang. annotation 은 네 가지 원 주 해 를 제공 합 니 다. 다른 주 해 를 전문 적 으로 설명 합 니 다. @ Target – 주 해 는 어디 에 사용 되 는 지, 기본 값 은 모든 요소 이 며, 이 주 해 는 어디 에 사용 되 는 지 표시 합 니 다.사용 가능 한 Element Type 지정 매개 변수 와 여러 개 를 동시에 지정 합 니 다.    ● Element Type. CONSTRUCTOR: 구조 기 설명 에 사용  ● ElementType. FIELD: 구성원 변수, 대상, 속성 (enum 인 스 턴 스 포함)  ● ElementType.LOCAL_VARIABLE: 부분 변 수 를 설명 하 는 데 사용 합 니 다.  ● ElementType. METHOD: 기술 방법  ● ElementType. PACKAGE: 패키지 설명 에 사용  ● ElementType. PARAMETER: 매개 변 수 를 설명 하 는 데 사용  ● Element Type. TYPE: 클래스, 인터페이스 (주해 유형 포함) 또는 enum 설명 에 사용
@ Retention – 이 주 해 를 언제 사용 합 니까? 즉, 주 해 된 수명 주 기 를 RetentionPolicy 로 지정 합 니 다.  ●   Retention Policy. SOURCE: 컴 파일 단계 에서 버 립 니 다.이 주석 들 은 컴 파일 이 끝 난 후에 더 이상 의미 가 없 기 때문에 바이트 코드 를 쓰 지 않 습 니 다. @Override, @ Suppress Warnings 는 모두 이런 주해 에 속한다.  ●   Retention Policy. CLASS: 클래스 를 불 러 올 때 버 립 니 다.바이트 파일 처리 에 유용 합 니 다.주 해 는 기본적으로 이런 방식 을 사용한다  ●   RetentionPolicy. RUNTIME: 항상 버 리 지 않 고 실행 기간 에 도 이 주 해 를 유지 하기 때문에 반사 체 제 를 사용 하여 이 주 해 를 읽 을 수 있 습 니 다.사용자 정의 주 해 는 보통 이런 방식 을 사용 합 니 다.    
@ Documented – 자바 Doc 에 포 함 될 지 여부
@ Inherited – 하위 클래스 가 이 주 해 를 계승 할 수 있 는 지 여부    @Inherited 원 주 해 는 태그 주석 입 니 다. @ Inherited 는 표 시 된 유형 이 계승 되 었 음 을 논술 하 였 습 니 다.@ Inherited 수식 을 사용 한 annotation 형식 이 class 에 사용 되면 이 annotation 은 class 의 하위 클래스 에 사 용 됩 니 다.
 
사용자 정의 주석 클래스 작성 규칙:
  • Annotation 형 은 @ interface 로 정의 되 며, 모든 Annotation 은 자바. lang. Annotation 이라는 인 터 페 이 스 를 자동 으로 계승 하 며, 다른 클래스 나 인 터 페 이 스 를 더 이상 계승 할 수 없습니다.
  • 매개 변수 구성원 은 Public 또는 기본 (default) 두 개의 접근 권 으로 만 수식 할 수 있 습 니 다
  • 매개 변수 구성원 은 기본 형식 byte, short, char, int, long, float, double, boolean 8 가지 기본 데이터 형식 과 String, Enum, Class, annotations 등 데이터 형식 과 이 유형의 배열 만 사용 할 수 있 습 니 다.
  • 클래스 방법 과 필드 의 주석 정 보 를 얻 으 려 면 자바 의 반사 기술 을 통 해 Annotation 대상 을 얻어 야 합 니 다. 그 밖 에 주석 대상 을 얻 는 방법 이 없 기 때 문 입 니 다
  • 주해 도 멤버 를 정의 하지 않 을 수 있다
  •  
    사용자 정의 주석
    다음은 자주 사용 하 는 사용자 정의 주석 데모 입 니 다.
    
    @Target({ElementType.ANNOTATION_TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface Audit {
        OpsType opsType() default OpsType.APP;
        OpsCategory category() default OpsCategory.APP;
        OpsMode mode() default OpsMode.ADD;
        String modelExpression() default "";
    }
    
    
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Configuration
    @ComponentScan
    public @interface KakaConfiguration {
    	public String[] value() default {}; //            value  
    }
    
    
    /**
     *       
     */
    @Target({ ElementType.TYPE, ElementType.METHOD })
    @Retention(RetentionPolicy.RUNTIME)
    public @interface NoLogin {
    
    }
    
    /**
     *       
     */
    @Target({ ElementType.TYPE, ElementType.METHOD })
    @Retention(RetentionPolicy.RUNTIME)
    public @interface NoAuth {
    
    }
    
    

    사용자 정의 주석 형식: Public @interface 주해 명 {정의 체}
    주석 에 있 는 구성원 은 Public 또는 기본 (default) 두 개의 접근 권 으로 만 수식 할 수 있 습 니 다. 매개 변수 구성원 이 한 명 만 있 으 면 매개 변수 이름 을 'value' 로 설정 하 는 것 이 좋 습 니 다.
     
    조합 주해 와 원 주해
    원 주 해 는 바로 주 해 를 할 수 있 는 것 이다. 사실은 다른 주해 에 주 해 를 할 수 있 는 주해 이다. 주 해 를 받 은 주 해 는 조합 주해 가 되 고 조합 주해 도 원 주해 의 기능 을 가진다.
    6. 주석 가 져 오기 및 사용
    Class 대상 반사 로 class 대상 획득, Class 대상 을 통 해 필드 필드 획득, 방법 Method 등
    isAnnotationPresent (주해. class) 방법 으로 필드 (또는 방법 상) 에 주해 가 있 는 지 판단 한 다음 에. getAnnotation (주해. class). value (). toString () 을 통 해 주해 의 value 값 을 가 져 옵 니 다. 일반적으로 주 해 를 정의 합 니 다. 저 희 는 springMVC 의 차단기 나 SpringAOP 에서 주 해 를 가 져 오 는 값 을 차단 하여 해당 하 는 처 리 를 합 니 다.
    String  nameSpace =method.getAnnotation(QueryCache.class).nameSpace().toString();

    좋은 웹페이지 즐겨찾기