Java Annotation 기능에 대한 자세한 설명
Annotation이란?
Annotation은 중국어로 Annotation으로 번역되는데, 이는 프로그램 자체의 로직 외에 추가 데이터 정보를 제공한다는 의미입니다. 주석은 주석이 달린 코드와 직접적으로 상호 작용할 수 없지만 다른 구성 요소는 이 정보를 사용할 수 있습니다.
주석 정보는 class 파일로 컴파일하거나 JVM(Java Virtual Machine)에 보관하여 런타임 시 얻을 수 있습니다. 주석 자체에 주석을 추가할 수도 있습니다.
객체에는 Annotation
클래스, 메소드, 변수, 매개변수 및 패키지를 추가할 수 있습니다. 주석을 추가할 수 있습니다.
내장 주석
@Override 오버로딩상위 클래스의 @Deprecated 메서드나 유형은 더 이상 권장되지 않습니다.
@SuppressWarnings 컴파일 방지. - 시간 경고 메시지. String의 배열을 매개변수로 받아야 합니다. 사용 가능한 매개변수는 다음과 같습니다:
선택 해제됨
path
serial
마지막으로
fallthrough
는 주석과 함께 사용할 수 있습니다.
@ Retention
은 저장되는 Annotation의수명주기를 결정하며, Enum 객체 RetentionPolicy를 매개변수로 받아야 합니다.
public enum RetentionPolicy { /** * Annotations are to be discarded by the compiler. */ SOURCE, /** * Annotations are to be recorded in the class file by the compiler * but need not be retained by the VM at run time. This is the default * behavior. */ CLASS, /** * Annotations are to be recorded in the class file by the compiler and * retained by the VM at run time, so they may be read reflectively. * * @see java.lang.reflect.AnnotatedElement */ RUNTIME }
@Documented Documented
@Target
은 Annotation이 수정할 수 있는 범위를 나타내며 Enum 객체를 받습니다. EnumType 배열을 매개변수로 사용합니다.public enum ElementType { /** Class, interface (including annotation type), or enum declaration */ TYPE, /** Field declaration (includes enum constants) */ FIELD, /** Method declaration */ METHOD, /** Parameter declaration */ PARAMETER, /** Constructor declaration */ CONSTRUCTOR, /** Local variable declaration */ LOCAL_VARIABLE, /** Annotation type declaration */ ANNOTATION_TYPE, /** Package declaration */ PACKAGE }
@Inherited
이 주석은 주석이 달린 클래스의 하위 클래스에 영향을 미칠 수 있습니다. 맞춤형 주석JSE5.0 이후에는 Annotation을 맞춤설정할 수 있습니다. 다음은 간단한 예입니다.@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MethodAnnotation { }
public class Person { public void eat() { System.out.println("eating"); } @MethodAnnotation public void walk() { System.out.print("walking"); } }
Class<Person> personClass = Person.class; Method[] methods = personClass.getMethods(); for(Method method : methods){ if (method.isAnnotationPresent(MethodAnnotation.class)){ method.invoke(personClass.newInstance()); } }
walking
@Target(ElementType.TYPE) public @interface personAnnotation { int id() default 1; String name() default "bowen"; }
@personAnnotation(id = 8, name = "john") public class Person { public void eat() { System.out.println("eating"); } @MethodAnnotation public void walk() { System.out.print("walking"); } }
인터페이스가 있습니다. Java의 반사 객체 클래스인 Class, Constructor, Field, Method 및 Package는 모두 이 인터페이스를 구현합니다. 이 인터페이스는 현재 JVM(Java Virtual Machine)에서 실행 중인 주석이 달린 프로그램 요소를 나타내는 데 사용됩니다. 이 인터페이스를 통해 리플렉션을 사용하여 주석을 읽을 수 있습니다. AnnotatedElement 인터페이스는 RUNTIME으로 표시된 주석에 액세스할 수 있습니다. 해당 메소드는 getAnnotation, getAnnotations 및 isAnnotationPresent입니다. Annotation 유형은 클래스와 마찬가지로 바이너리로 컴파일되고 저장되므로 이러한 메소드에서 반환된 Annotation은 일반 Java 객체처럼 쿼리할 수 있습니다. Annotation의 광범위한 사용
Annotation은 다양한프레임워크
및 라이브러리에서 널리 사용됩니다.Junit은 매우 유명한단위 테스트
프레임워크입니다. Junit을 사용하려면 많은 주석을 접해야 합니다. @Runwith 사용자 정의 테스트 클래스 Runner- @ContextConfiguration Spring의 ApplicationContext 설정
- @DirtiesContext Reload 다음 테스트 실행 전 ApplicationContext.
- @Before 테스트 메서드 호출 전 초기화
- @테스트 메서드 호출 후 처리 후
- @Test는 해당 메소드가 테스트 메소드임을 나타냅니다.
- @Ignore를 테스트 클래스 또는 테스트 메소드에 추가하여 작업을 무시할 수 있습니다.
- @BeforeClass: 테스트 클래스의 모든 테스트 메서드가 실행되기 전에 호출되며 한 번만 호출됩니다(표시된 메서드는 정적
- 이어야 함)
@AfterClass: 테스트 클래스의 모든 테스트 메소드가 실행된 후 호출되며 한 번만 실행됩니다(표시된 메소드는 정적이어야 함)
Spring
Spring은 구성지옥이라 불리며 Annotation이 많습니다.
@Service 서비스 클래스에 주석 추가
@Repository DAO 클래스에 주석 추가
@Component 컴포넌트 클래스에 주석 달기
@Autowired Let Spring이 자동으로 Bean을 어셈블합니다
@Transactional 구성 항목
@Scope는 객체 생존 범위를 구성합니다
@Controller는 컨트롤러 클래스에 주석을 답니다
-
@RequestMapping URL 경로 매핑
@PathVariable은 메소드 매개변수를 경로에 매핑합니다.
@RequestParam은 요청 매개변수를 메소드 변수에 바인딩합니다.
@ModelAttribute는 model
@SessionAttributes는 세션 속성
Hibernate
으로 설정됩니다. @Entity는 Entity Bean
@Table은 엔터티 클래스를 데이터베이스의 테이블에 매핑합니다
@Column은 열을 매핑합니다
@Id 매핑 ID
@GeneratedValue 이 필드는 자동으로 증가합니다
@버전 제어 또는 동시성 제어
@OrderBy Collation
@Lob Large Object Annotation
Hibernate 및 기타 주석 관련 Union의 설명과 을 상속받은 의 주석이 있으므로 여기에 나열하는 것은 의미가 없습니다.
JSR 303 – Bean Validation
JSR 303 – Bean Validation은 데이터 검증 사양으로, Java Bean 검증은 주로 Java Annotation을 통해 구현됩니다.
@Null주석: 의 요소는 null이어야 합니다.
@NotNull 주석이 추가됨 요소는 null이 아니어야 합니다
@AssertTrue주석이 있는 요소는 true여야 합니다@AssertFalse주석이 있는 요소는 false@Min(value)이어야 합니다.주석이 있는 요소는 값이 다음보다 커야 합니다. 또는 지정된 최소값과 같음
@Max(value) 주석이 달린 요소는 숫자여야 하며 해당 값은 지정된 최대값보다 작거나 같아야 합니다.
@DecimalMin(value)주석이 달린 요소는 숫자여야 하며 해당 값은 지정된 최소값보다 크거나 같아야 합니다
@DecimalMax( 값) 주석이 달린 요소는 다음과 같아야 합니다. 값이 지정된 최대값보다 작거나 같아야 하는 숫자입니다.
@Size(max, min) 주석이 달린 요소의 크기는 다음과 같아야 합니다. 지정된 범위 내
@Digits(정수, 분수) 주석이 달린 요소는 숫자여야 하며 해당 값은 허용 범위 내에 있어야 합니다
@Past 주석이 달린 요소는 과거 날짜여야 합니다
@Future로 주석이 달린 요소는 미래의 날짜여야 합니다
@Pattern(value)으로 주석이 달린 요소는 지정된 정규식
을 준수해야 합니다. 실제로 주석을 사용하는 프레임워크나 라이브러리가 많기 때문에 여기에 하나씩 나열하지는 않겠습니다. 모두가 Java의 주석에 대해 자세히 알아볼 수 있기를 바랍니다.
위 내용은 Java Annotation 기능에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.
