반응형
자바 프로그래밍 관련 문서를 찾아보다가 '자바 빈즈(Java Beans)'라는 단어를 듣게 되었다.
자바빈즈(Java Beans)는 자바(Java)로 작성된 소프트웨어 컴포넌트를 일컫는 말로 데이터 표현을 목적으로하는 자바 클래스다. 자바 빈즈 클래스는 'Java Beans Convention'을 지켜야 하며, Java Beans Convention은 다음과 같다.
- 클래스는 인자(Argument)가 없는 기본 생성자(Default constructor)를 갖는다
- 클래스의 멤버 변수는 프로퍼티(Properties)라고 하며 private 접근 제한자를 가져야 한다.
- 클래스의 프로퍼티들은 Getter/Setter를 통해 접근할 수 있어야 한다
- Getter의 이름은 get{프로퍼티 이름} 이며, Setter의 이름은 set{프로퍼티 이름}이다
- Getter/setter의 접근 제한자는 public이어야 한다.
- 프로퍼티의 타입이 Boolean인 경우 is로 시작할 수 있다
- Getter의 경우 파라미터가 존재하지않아야 하며, setter의 경우 하나 이상의 파라미터가 존재한다
- Read Only인 경우 Setter는 없을 수 있다.
- Serializable 인터페이스를 구현한다.
- 자바빈 클래스는 패키징 되어야 한다. (Package)
문서들을 읽어보니 공통적으로 JSP와 관련된 내용을 담고 있다. 아마도 JSP쪽에서 데이터를 담기 위한 표준 규약 정도로 만들어 사용하는 자바 클래스인 것 같다.
자바 빈즈 컨벤션을 만족하는 자바 빈즈 클래스의 예제는 다음과 같다. 예제 소스코드는 위키를 참조해서 주석을 달아봤다. (링크 : 위키 자바빈즈)
// packaging
package person;
// implements Serializable interface
public class PersonBean implements java.io.Serializable
{
// Properties
private String name;
private boolean coding;
// default constructor
public PersonBean()
{
}
// getter method for a property
public String getName()
{
return this.name;
}
// setter method for a property
public void setName(String name)
{
this.name = name;
}
// getter method for a property, this can starts with 'is' when the type of the property is boolean
public boolean isCoding()
{
return this.coding;
}
// setter method for a property
public void setCoding(boolean coding)
{
this.coding = coding;
}
}
이런 녀석들을 자바 빈즈라고 한다.
반응형
댓글