Java 로 작성된 소프트웨어 Component 를 JavaBeans 라고 부릅니다. 이  JavaBeans 는 SunMicroSystems 에서 나온 객체지향 프로그래밍 인터페이스입니다.  이것은 주요 운영체게 플랫폼의 네트웤 내에 적용 될 수 있는 재사용 가능한 application 또는 Component 들을 구축 할 수 있게 해 줍니다.(자바 관련 소프트웨어 개발에서 '재사용이 가능'한 표준 Component 모델입니다.)

-    java applet 처럼, JavaBeans Component 들도 사용자 또는 브라우저 특성에 맞게 페이지 내용을 변경하는 등, 웹페이지에 인터렉태브(폭넓은) 기능을 부여하는데 사용될 수 있습니다. 

-    쉽게 예를 들자면 '레고' 를 말할 수 있습니다. 규격화된 블록들을 조합하여 하나의 건담(?.. ㅋㅋ )을 완성합니다. 즉 하나하나의 레고블럭(Component)을 조립하여 하나의 완성품을 만들어 낼 때, 규격화된 블록 하나 하나가 Component 이자 JavaBeans 인 것입니다.


-    javaBeans 는 아래 그림과 같이 구성될 수 있으며, business Logic 과 View 로 나뉠수 있다.


** business Logic ( java, Server 단)




** View ( jsp, 화면단)


출처 -  http://iceken.egloos.com/4012246 

==============================================================================================

자바 개발자들이 재사용이 가능한 소프트웨어 개체를 만들 수 있게 하는 컴포넌트 기술. 이러한 개체들은 공유가 가능하다. 데이터 베이스 회사가 자사의 소프트웨어를 지원하는 자바빈을 만들어주면 개발자들은 자신들의 프로젝트에 그것을 쉽게 포함하여 사용할 수 있다. 

주요 운영 체계 플랫폼의 네트워크 환경에서 재사용 가능 애플리케이션 또는 프로그램 컴포넌트들을 시각적인 환경 아래 개발할 수 있게 해주는 구조. 선마이크로시스템즈사에서 발표한 객체 지향 프로그래밍 인터페이스이다. 메소드의 특정 패턴을 포함하는 클래스로서, 자바 애플릿처럼 시각적 환경의 컴포넌트 제공으로 개발 및 사용이 빠르고 용이하며, 어떤 플랫폼에서도 수행될 수 있는 이식성과 재사용이 가능한 특징이 있다. 


출처 - 네이버 지식 사전


===================================================================================


자바빈즈(JavaBeans)는 자바로 작성된 소프트웨어 컴포넌트이다.

자바빈즈의 사양은 썬 마이크로시스템즈에서 다음과 같이 정의되었다. "빌더형식의 개발도구에서 가시적으로 조작이 가능하고 또한 재사용이 가능한 소프트웨어 컴포넌트입니다.'

많은 측면에서 유사성을 보임에도 불구하고 자바빈즈는 엔터프라이즈 자바빈즈(EJB)와 혼동하지 말아야 한다. EJB는 자바 플랫폼, 엔터프라이즈 에디션(Java EE)의 일부로서 서버 계열의 컴포넌트이다.

[편집]자바빈즈의 관례

자바빈즈 클래스로서 작동하기 위해서, 객체 클래스는 명명법, 생성법 그리고 행동에 관련된 일련의 관례를 따라야만한다. 이러한 관례는 (빌더 형식의) 개발 도구에서 자바빈즈와의 연결을 통해 클래스의 사용과 재사용 그리고 클래스의 재배치를 가능하게 한다.

지켜야할 관례에는 다음과 같은 것이 있다.

  • 클래스는 직렬화되어야 한다.(클래스의 상태를 지속적으로 저장 혹은 복원 시키기위해)
  • 클래스는 기본생성자를 가지고 있어야한다.
  • 클래스의 속성들은 getset 혹은 표준 명명법을 따르는 메서드들을 사용해 접근할 수 있어야 한다.
  • 클래스는 필요한 이벤트처리 메서드들을 포함하고 있어야 한다.

오히려 인터페이스의 구현보다 다양한 관례로서 표현된 요구사항들로 인해, 일부 개발자들은 자바빈즈를 확실한 명명법을 따르는 예전의 자바 객체로 보기도 한다. 그렇지만 그러한 관점은 이벤트 처리 지원하는 자바빈즈에 대한 오해를 낳을 수도 있다. 왜냐하면 메서드 관례와 이벤트 처리를 지원하는 클래스는 상당히 복잡하기 때문이다. 그리고 특정 기반틀래스와 인터페이스를 요구하기 때문이다.

[편집]자바빈즈에 관련된 예제들

/***********************************
* * 
* PersonBean.java *
* *
************************************/
public class PersonBean implements java.io.Serializable 
{
    private String name;
    private boolean coding;
 
    // 기본 생성자 (인자가 없는).
    public PersonBean() 
    {
 
    }
 
    public String getName() 
    {
        return this.name;
    }
    public void setName(String name) 
    {
        this.name = name;
    }
 
    // Different semantics for a boolean field (is vs. get)
 
    public boolean isCoding() 
    {
        return this.coding;
    }
 
    public void setCoding(boolean coding) 
    {
        this.coding = coding;
    }
}
/***********************************
* * 
* TestPersonBean.java *
* *
************************************/
 
public class TestPersonBean 
{
    public static void main(String[] args) 
    {
 
        PersonBean person = new PersonBean();
        person.setName("Bob");
        person.setCoding(true);
 
        // Output: "Bob [coding]"
        System.out.print(person.getName());
        System.out.println(person.isCoding() ? " [coding]" : "");
    }
}

[편집]실제 적용 사례

AWT, Swing 그리고 SWT와 같은 자바 GUI 툴킷의 컴포넌트에 자바빈즈 관례들을 사용하고 있다. 그리고 위에 언급된 툴킷의 컴포넌트들은 이클립스의 Visual Editor와 같은 GUI 편집기에서 컴포넌트간 계층을 유지하고 'getter'와 'setter' 메서드들을 통해 컴포넌트에 접근하게 한다.











Posted by linuxism
,