다음 표에서는 EJB 3.1 어노테이션과 배치 디스크립터의 XML 데이터 사이의 변환을 설명합니다.
어노테이션 | 속성 | 설명 | 상응하는 배치 디스크립터 요소 |
---|---|---|---|
EJB어노테이션(JSR-220) | |||
@Stateless |
|
Stateless 세션 Bean에 대한 컴포넌트 정의 어노테이션. isIdentical 메소드를 동일한 Stateless 세션 Bean의 두 개의 세션 오브젝트에 대한 오브젝트 참조 비교 시(즉, 기능적으로 교환 가능한 경우) 사용하면 항상 true를 리턴합니다. |
|
@Stateful |
|
Stateful 세션 Bean에 대한 컴포넌트 정의 어노테이션. |
|
@Local |
|
Bean 클래스에 사용되면, Bean에 대한 로컬 비즈니스 인터페이스를 선언합니다. 인터페이스에 사용되면, 인터페이스를 로컬 비즈니스 인터페이스로 지정합니다. 이 경우, value()가 제공되지 않습니다. |
|
@LocalHome |
|
세션 Bean에 대한 채택된 로컬 홈 인터페이스 또는 로컬 홈을 선언합니다. |
|
@Remote |
|
세션 Bean에 대한 원격 비즈니스 인터페이스를 선언합니다. 인터페이스에 사용되면, 인터페이스를 원격 비즈니스 인터페이스로 지정합니다. 이 경우, value()가 제공되지 않습니다. |
|
@RemoteHome |
|
세션 Bean에 대한 채택된 원격 홈 인터페이스 또는 원격 홈을 선언합니다. |
|
@Remove |
|
Stateful 세션 Bean 클래스의 비즈니스 메소드에 적용됩니다. 메소드 완료 후 컨테이너에 의해 Stateful 세션 Bean이 제거된다는 것을 표시합니다. |
|
@Init |
(채택된
홈/로컬 홈 인터페이스의 상응하는 작성 메소드 이름) |
채택된 홈 인터페이스 또는 채택된 로컬 홈 인터페이스의 작성 메소드에 상응하는 세션 Bean의 메소드를 지정합니다. |
|
@Timeout | 없음 | 해당 Bean의 EJB 타이머 만기를 수신할 Stateless 세션 Bean 클래스 또는 메시지 구동 Bean 클래스의 메소드를 지정합니다. |
|
@MessageDriven |
|
메시지 구동 Bean의 컴포넌트 정의 어노테이션 |
|
@TransactionAttribute |
|
유형 레벨에 적용되면 되면 세션 또는 메시지 구동 Bean의 모든 비즈니스 메소드에 대한 기본 트랜잭션 속성을 지정합니다. 메소드 레벨에 적용되면 해당 메소드에 대한 트랜잭션 속성만 지정합니다. |
|
@TransactionManagement |
|
세션 Bean 또는 메시지 구동 Bean의 트랜잭션이 컨테이너 관리 트랜잭션인지 Bean 관리 트랜잭션인지를 선언합니다. |
|
@PostActivate | 없음 | Stateful 세션 Bean이 활성화된 후에 콜백을 수신할 메소드를 지정합니다. |
|
@PrePassive | 없음 | Stateful 세션 Bean이 비활성화되기 전에 콜백을 수신할 메소드를 지정합니다. |
|
@EJB |
(대상 EJB의 다음 인터페이스 유형 중 하나를 유지합니다. [로컬 비즈니스
인터페이스, 원격 비즈니스 인터페이스, 로컬 홈 인터페이스,
원격 홈 인터페이스])
|
엔터프라이즈 Java™ Bean의 로컬 또는 원격 보기에 대한 종속성을 표시합니다. |
|
@EJBs | 복수 유형 레벨 @EJB 어노테이션을 선언합니다. | ||
@ApplicationException |
|
예외에 적용되어 이 예외가 애플리케이션 예외이며 클라이언트에 직접 보고되어야 함을 표시합니다(즉, 랩핑되지 않음). |
|
@ActivationConfigProperty |
|
활성 구성 특성을 표시합니다. |
|
@AroundInvoke | 없음 | EJB 호출의 around invoke 부분 동안 호출될 클래스의 메소드를 지정합니다. |
|
@ExcludeClassInterceptors | 없음 | 비즈니스 메소드의 클래스 레벨 인터셉터를 제외하는 데 사용됩니다. |
|
@ExcludeDefaultInterceptors | 없음 | Bean 또는 비즈니스 메소드의 기본 인터셉터를 제외하는 데 사용됩니다. |
|
@Interceptors |
|
클래스 또는 메소드의 인터셉터 정렬 목록을 선언합니다. |
|
공통 어노테이션(JSR 250) | |||
@Generated |
|
@Generated 어노테이션은 생성된 코드를 표시하는 데 사용됩니다. 또한, 단일 파일에서 생성된 코드와 사용자가 작성한 코드를 구별하는 데 사용되기도 합니다. 이 어노테이션이 사용되면 값 요소는 코드 생성기의 이름을 가져야 합니다. 권장되는 명명법은 값 필드에 코드 생성기의 완전한 이름을 사용하는 것입니다. 예를 들면, com.company.package.classname과 같습니다. 날짜 요소는 소스 코드가 생성된 날짜를 표시하는 데 사용됩니다. 날짜 요소는 ISO 8601 표준을 따라야 합니다. 예를 들어, 날짜 요소는 2011-07-04T12:08:56.235-0700 값을 가질 수 있는데, 이는 미국 태평양 시간대의 2011-07-04 12:08:56 로컬 시간을 의미합니다. 주석 요소는 코드 생성기가 생성된 코드에 포함할 주석에 대한 플레이스홀더입니다. SOURCE 유지를 가진 유일한 어노테이션입니다. 다른 모든 것은 런타임입니다. | 없음 |
@PostConstruct | 없음 | @PostConstruct 어노테이션은 초기화를 수행하기 위해 종속성 인젝션이 완료된 후에 실행되어야 하는 메소드에 사용됩니다. |
|
@PreDestroy | 없음 | @PreDestroy 어노테이션은 인스턴스가 컨테이너에 의해 제거 중인 프로세스에 있다는 신호를 보내는 콜백 알림으로서 메소드에 사용됩니다. |
|
@Resource |
이 자원에 사용될 인증 유형입니다.
자원의 JNDI 이름입니다.
이 컴포넌트와 기타 컴포넌트 사이에 이 자원의 공유 여부를
표시합니다.
자원의 Java 유형입니다. |
@Resource 어노테이션은 애플리케이션에서 필요한 자원을 표시합니다. 이 어노테이션은 애플리케이션 컴포넌트 클래스에 적용되거나, 컴포넌트 클래스의 필드 또는 메소드에 적용될 수 있습니다. 어노테이션이 필드 또는 메소드에 적용되면, 컴포넌트가 초기화될 때 컨테이너는 요청된 자원의 인스턴스를 애플리케이션 컴포넌트에 주입합니다. 어노테이션이 컴포넌트 클래스에 적용되면 어노테이션은 애플리케이션이 런타임 시 검색할 자원을 선언합니다. |
|
@Resources | |||
@DeclareRoles |
|
애플리케이션에서 역할을 선언하기 위해 사용됩니다. |
|
@DenyAll | 없음 | 지정된 메소드를 호출하도록 허용된 보안 역할이 없다는 것을 지정합니다. 즉, 해당 메소드는 J2EE 컨테이너에서의 실행에서 제외됩니다. |
|
@PermitAll | 없음 | 모든 보안 역할이 지정된 메소드를 호출할 수 있도록 지정합니다. 즉, 지정된 메소드가 지워집니다. 클래스 또는 메소드에 지정될 수 있습니다. 클래스에 지정하면 해당 클래스의 모든 메소드에 적용됩니다. 메소드 레벨에 지정되면 해당 메소드에만 영향받습니다. RolesAllowed가 클래스 레벨에 지정되고 이 어노테이션이 메소드 레벨에 지정된 경우, 지정된 메소드에 대해 PermitAll 어노테이션이 RolesAllowed를 겹쳐씁니다. |
|
@RolesAllowed |
|
애플리케이션의 메소드에 액세스하도록 허용된 역할의 목록을 지정합니다. RolesAllowed 어노테이션의 값은 보안 역할 이름의 목록입니다. 이 어노테이션은 클래스 또는 메소드에 지정할 수 있습니다. |
|
@RunAs |
|
J2EE 컨테이너에서 실행되는 동안 애플리케이션의 ID를 정의합니다. 이를 통해 개발자는 특정 역할 하에서 실행할 수 있습니다. 역할은 컨테이너 보안 범주의 사용자/그룹 정보에 맵핑되어야 합니다. 이의 값은 보안 역할의 이름입니다. |
|