관리 Bean
관리 Bean 스펙(JSR -316)을 사용하여 Java™ Platform Enterprise Edition(EE)용 관리 Bean을 정의하며 이 스펙은 Java EE 6 플랫폼의 일부입니다.
관리 Bean은 최소한의 지원 서비스가 포함된 컨테이너 관리 오브젝트(예: 자원 인젝션, 라이프사이클
콜백 및 인터셉터)이며 다음과 같은 특성을 갖고 있습니다.
- 관리 Bean에는 고유한 컴포넌트 범위의 java:comp 네임스페이스가 없습니다. 따라서 java:app 및 java:module에서만 해당 자원을 정의할 수 있습니다.
- 관리 Bean 메소드는 호출 스레드와 같은 스레드에서 실행됩니다. 예를 들어, 메소드는 고유의 스레드를 시작하지 않습니다.
- 관리 Bean 메소드는 호출 스레드와 동일한 컨텍스트를 사용합니다.
- 관리 Bean은 javax.annotation.ManagedBean 어노테이션을 사용하여 정의됩니다.
- 관리 Bean에는 선택적인 이름이 있을 수 있고 이름이 있는 경우에만 java:module 및 java:app에 바인드됩니다.
예를 들면, 다음과 같습니다.
@ManagedBean(“myCart“) public class Cart { ... }
- 관리 Bean에 대한 참조는 자원 인젝션을 통해 확보할 수 있고, 이름이 지정된 경우에는 java:module 또는 java:app의 검색을 통해 확보할 수 있습니다.
- 관리 Bean은 javax.annotation.PostConstruct와 javax.annotation.PreDestroy 어노테이션으로 라이프사이클 콜백을 지원합니다.
ibm-managed-bean-bnd.xml 파일을 사용하여 JNDI 이름에 자원을 맵핑할
바인딩 정보를 지정할 수 있습니다. 다음 예제는 ibm-managed-bean-bnd.xml 파일의 사용을 표시합니다.
<?xml version="1.0" encoding="UTF-8"?>
<managed-bean-bnd
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://websphere.ibm.com/xml/ns/javaee"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-managed-bean-bnd_1_0.xsd"
version="1.0"
>
<managed-bean class="com.ibm.example.MyManagedBean">
<resource-ref name="myDS" binding-name="jdbc/ds1"/>
<resource-ref name="com.ibm.example.MyManagdBean/field" binding-name="jdbc/ds2"/>
<message-destination-ref name="myQueue" binding-name="jms/mqQueue"/>
<ejb-ref name="myEJB" binding-name="java:app/MyEJBModule/MyStatelessBean"/>
</managed-bean>
<interceptor class="com.ibm.example.MyManagedBeanInterceptor">
<resource-ref name="interceptorDS" binding-name="jdbc/db2ds"/>
</interceptor>
</managed-bean-bnd>
관리 Bean 바인딩 스키마가 정의하는 것처럼 ibm-managed-bean-bnd.xml 파일은 공통 요소 정의의 서브세트를 EJB 바인딩과 공유합니다.
EJB 바인딩 요소의 목록과 해당 설명에 대해서는 EJB 3.0 및 EJB 3.1 애플리케이션 바인딩 개요 페이지를 참조하십시오.