어노테이션의 범위 및 배치

클래스, 메소드 및 필드 레벨에서 소스 코드에 어노테이션을 추가할 수 있습니다.

어노테이션 사용

EJB 3.1 및 Java™ Persistence API는 J2SE 5.0에 소개된 기능인 메타데이터 어노테이션을 사용합니다. 어노테이션은 어노테이션 유형 앞에 @ 부호로 구성되며 경우에 따라 어노테이션 다음에 요소-값 쌍의 설명적 목록으로 구성됩니다. EJB 3.1 스펙은 다음과 같이 다양한 어노테이션 유형을 정의합니다.
  • Bean 유형을 지정하는 @Stateless와 같은 컴포넌트 정의 어노테이션
  • Bean에 원격 또는 로컬로 액세스할 수 있는지 여부를 지정하는 @Remote@Local
  • 트랜잭션 속성을 지정하는 @TransactionAttribute
  • 보안 및 메소드 권한을 지정하는 @MethodPermissions, @Unchecked, 및 @SecurityRoles
Java Persistence API는 다음과 같이 엔티티 작성에 고유한 어노테이션을 추가합니다.
  • 클래스가 엔티티인지 지정하는 컴포넌트 정의 어노테이션인 @Entity
  • 클래스에서 사용되는 데이터 소스를 지정하는 @Table
참고: JPA 맵핑 어노테이션(예: @Id, @Column)은 필드와 메소드에 모두 적용할 수 있지만 임의의 하나의 엔티티 클래스에 대해서는 둘 중 하나에만 어노테이션을 적용할 수 있습니다. 즉, 모든 어노테이션을 필드에 적용하거나 모든 어노테이션을 메소드에 적용해야 합니다. 필드에는 개인용, 보호 또는 패키지 가시성만 있을 수 있으며 엔티티의 클라이언트에서 필드에 직접 액세스할 수 없으므로 공용 Getter 및 Setter를 정의해야 합니다.

어노테이션의 범위 및 배치

어노테이션은 클래스, 인터페이스, 메소드 또는 필드 레벨에서 작동합니다. 예를 들어, 컴포넌트 정의 어노테이션(예: @Stateless 또는 @Entity)은 클래스 레벨 어노테이션이며, 다음과 같이 클래스 선언 이전에 주석 섹션에 삽입됩니다.
package com.ibm.websphere.ejb3sample.counter;

import javax.ejb.Stateless;
import javax.interceptor.Interceptors;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
@Interceptors(Audit.class)

public class StatelessCounterBean implements LocalCounter, RemoteCounter {
이러한 어노테이션의 순서는 중요하지 않으며, 일반적으로 다른 어노테이션 앞에 컴포넌트 정의 어노테이션이 배치되지만 반드시 이러한 순서로 배치되어야 하는 것은 아닙니다. 다음과 같이 클래스 또는 메소드 내에 메소드 레벨 및 필드 레벨 어노테이션이 표시됩니다.
public class JPACounterEntity {

    @Id
    private String primarykey = "PRIMARYKEY";

    private int value = 0;
주제 유형을 표시하는 아이콘 개념 주제
Information Center의 이용 약관 | 피드백

시간소인 아이콘 마지막 업데이트 날짜: 2014-05-22

파일 이름: cusingannotations.html