주제

소개To top of page

JavaBean은 간단하고 강력한 Java 컴포넌트 모델을 정의합니다. JavaBean의 목표는 개발자가 프로그램으로 조작하거나 가시적으로 빌더 툴에서 조작할 수 있는 자체 포함된 재사용 가능한 장치에 제공하는 것입니다.

JavaBean은 GUI 제어일 수 있거나 가시적 표시가 부족할 수 있습니다. Java의 GUI 제어는 보통 빌더 툴로 조작되기 위한 JavaBean입니다. J2EE에서 간단한 JavaBeans는 보통 JSP에서 사용되며, 여기서 JavaBean에 포함된 HTML 및 Java 코드에서의 프리젠테이션 분리를 제공합니다.

JavaBean은 세 가지 구분되는 기능을 가진 Java 클래스입니다.

JavaBean 특성 To top of page

JavaBean의 특성은 다른 컴포넌트에서 액세스될 수 있습니다. 일반적으로 특성은 setter 및 getter 메소드를 통해 액세스되는 개인용 값이지만 계산된 값일 수 있습니다. 특성 갱신은 여러 부작용을 일으킬 수 있습니다.

액세서는 특성을 액세스하는 메소드입니다. 액세서는 getter 및 setter일 수 있으며, 이름 지정 규칙을 따릅니다.

void setPropertyName(PropertyType value); // setter
PropertyType getPropertyName() // getter

부울 특성의 경우, getter는 다음과 같을 수 있습니다.

boolean isPropertyName() // getter for a boolean property

: 고객 Bean

다음은 두 가지 간단한 등록 정보(이름 및 전자 우편)를 포함하는 간단한 JavaBean(고객)의 예입니다. set/get 메소드 쌍을 통해 등록 정보를 정의하는 방식에 주의하십시오.

고객 등록 정보를 표시하는 UML 다이어그램.

public class Customer {
private String name;
private String email;

public String getName() {
return name;
}

public void setName(String aName) {
name = aName;
}

public String getEmail() {
return email;
}

public void setEmail(String aEmail) {
email = aEmail;
}

}

간단한 JavaBean은 JSP에서 자주 사용되며, 웹 페이지의 양식에서 값의 전송을 가능하게 합니다.

색인화된 특성 To top of page

단일 값을 갖는 단순한 정보 이외에, 특성은 배열에 포함된 값의 세트일 수 있습니다.

색인화된 특성은 지정된 색인으로 값을 리턴하거나 전체 값 배열을 리턴할 수 있습니다.

색인화된 특성에는 다음과 같은 서명이 있습니다.

void setPropertyName(int index, PropertyType value); // indexed setter
PropertyType getter(int index); // indexed getter
void setPropertyName(PropertyType values[]); // array setter
PropertyType[]getPropertyName(); // array getter

바인드된 특성 To top of page

바인드된 특성 메커니즘은 특성 변경시 공고 서비스를 제공합니다. 변경에 대한 통보를 받으려는 관심있는 객체는 미리 자체 등록하여, 특성 변경 발생시 등록된 객체로 공고가 보내집니다. 일반적으로 이 공고는 특성이 설정된 이후에 바인드된 특성이 있는 컴포넌트에 의해 시작되는 이벤트를 통해 수행됩니다.

바인드된 특성이 있는 JavaBean은 리스너라는 관심있는 객체의 등록 및 등록 취소를 위한 메소드를 표시합니다. 개발자는 자체 공고 메커니즘을 정의할 수 있지만, Java 라이브러리는 java.beans 패키지에서 일반적으로 사용되는 몇 개의 지원 클래스를 제공합니다.

제한된 특성 To top of page

제한된 특성은 바인드된 특성과 유사하지만, 특성이 실제로 설정되기 전에 공고가 발생합니다. PropertyVetoException을 발생시켜 관계자가 특성을 변경하지 못하게 합니다.

이벤트 및 공고 To top of page

이벤트는 상태 변경에 대한 정보를 전달하여 독립적으로 개발된 컴포넌트가 서로 통신할 수 있게 하는 JavaBean의 기능입니다. 이 모델에서 일부 컴포넌트는 이벤트 리스너의 역할로 다른 컴포넌트가 처리하는 이벤트를 시작합니다.

이 의사소통 모델을 지원하기 위해 JavaBeans 컴포넌트 모델은 다음을 제공합니다.

  • 이벤트(바인드된 특성 및 제한된 특성)를 시작할 수 있는 특성
  • 리스너가 자신을 등록할 수 있는 등록 메소드
  • 변경 정보를 전달하는 이벤트
  • 전달된 이벤트에 대해 반응할 수 있는 리스너

다음 클래스 다이어그램은 간단한 int 특성을 포함하는 EventSource라는 JavaBean의 개념을 설명합니다.

첨부 텍스트에 설명된 다이어그램

구체적 리스너는 구성 중에 JavaBean으로 등록됩니다. 나중에 어떤 지점에서 일부 다른 객체가 이벤트 객체를 작성하여 공고 프로세스를 시작하는 setProperty 메소드를 호출합니다. EventSource JavaBean은 등록된 모든 리스너에서 propertyChange 메소드를 호출합니다. 이벤트 리스너는 이벤트를 수신하여 값을 읽고 이벤트에 반응합니다.

다음 순서 다이어그램은 호출 순서를 설명합니다.

첨부 텍스트에 설명된 다이어그램

리스너의 공고는 이벤트의 소스인 JavaBean 인스턴스에 대하여 동기화되지만, 이벤트 리스너는 다른 스레드에서 이벤트 처리를 수행할 수 있습니다.

내성 To top of page

내성(introspection)은 JavaBean의 특성, 이벤트 및 메소드의 검출을 가능하게 하는 런타임 메커니즘입니다. 내성은 다른 컴포넌트에서 하드 코딩된 종속성을 사용하지 않는 프로그램과 개발 툴에서 사용됩니다. 내성은 메소드 및 인터페이스의 이름 지정을 위한 규칙 세트와 반영을 통해 이루어집니다. 내성의 추가 기능은 BeanInfo 클래스에서 지원됩니다. 내성에 사용되는 JavaBean 이름 지정 규칙은 때로 "설계 패턴"이라고 하지만, 객체 지향 설계에서 설계 패턴의 개념과 혼동되지 않아야 합니다.

지속성 To top of page

JavaBean은 일련화 메커니즘을 통해 지속될 수 있습니다. JavaBean이 일련화 가능 또는 외부화 가능 인터페이스를 구현하는지 여부에 따라 일련화는 자동화 또는 사용자 정의될 수 있습니다. JDK 1.4는 XML 형식으로 JavaBean 인스턴스의 저장을 제공하는 XMLEncoderXMLDecoder 클래스를 소개합니다.

사용자 정의 To top of page

JavaBean의 모양과 작동은 설계 시간에 사용자 정의될 수 있습니다. 이것은 그래픽 사용자 인터페이스에서 사용되는 시각적 JavaBean에 특히 중요합니다. 사용자 정의는 특성 편집기나 사용자 정의기를 사용하여 수행됩니다. 사용자 정의기는 설계 시간에 JavaBean 인스턴스를 구성하는 사용자 정의 사용자 인터페이스를 제공합니다.

BeanContext To top of page

BeanContext는 JavaBean이 성능 및 서비스의 환경을 문의할 수 있도록 논리적 포함 계층 구조를 정의합니다. BeanContext 메커니즘은 계층 구조의 JavaBeans에서 제공하는 서비스의 찾아보기와 JavaBeans의 논리적 포함 계층 구조의 지원을 제공합니다.

JavaBean™ 활성화 프레임워크 To top of page

Java 활성화 프레임워크는 데이터 유형을 판별하고, 캡슐화하고, 일부 데이터에서 원하는 조작에 해당하는 소프트웨어 컴포넌트의 사용 가능한 조작 및 인스턴스화를 발견할 수 있는 표준 Java 확장입니다.

자세한 정보To top of page

JavaBean에 대한 자세한 정보는 http://java.sun.com/에서 JavaBeans API 스펙, 버전 1.01을 참조하십시오(Docs & Training > Java 2 Platform, Standard Edition > Java 2 SDK, SE v1.3 documentation > JavaBeans > JavaBeans Specification 링크 수행).




이 컨텐츠는 Inferdata Corporation에서 개발되었거나 부분적으로 개발되었습니다.

Rational Unified Process   2003.06.15