자바 빈(JavaBean)은 원래 비주얼 툴에서 조작 가능한 컴포넌트를 말했다. 자바의 주력 개발 플랫폼이 웹 기반 엔터프라이즈 방식으로 바뀌면서 비주얼 컴포넌트로서 자바빈은 인기를 서서히 잃어갔지만, 자바빈의 몇 가지 코딩 관례는 JSP 빈, EJB와 같은 표준 기술과 자바빈 스타일의 오브젝트를 사용하는 오픈소스 기술을 통해 계속 이어져 왔다.
이제 자바빈이라고 말하면 비주얼 컴포넌트라기보단 특정 형태의 오브젝트를 가리킨다. 간단히 빈이라고도 부르는데 특정 형태는 아래 두 가지 관례를 뜻한다.
디폴트 생성자 : 자바빈은 파라미터가 없는 디폴트 생성자를 갖고 있어야 한다. 툴이나 프레임 워크에서 리플렉션을 이용해 오브젝트를 생성하기 때문에 필요하다.
프로퍼티 : 자바빈이 노출하는 이름을 가진 속성을 프로퍼티라고 한다. 프로퍼티는 set으로 시작하는 수정자 메소드(setter)와, get으로 시작하는 접근자 메소드(getter)를 이용해 수정 또는 조회할 수 있다.
DTO 혹은 VO형태가 자바 빈이라고 생각하면 쉽다.
아래 간단한 클래스를 통해 예제를 알아보자
public class JavaBeanExample {
private String bean;
private String beanName;
// 위와 같이 iv들의 접근 제어자가 private이어야 한다.
public JavaBeanExample() {}
// no-argument constructor가 필요하다.
public getBean() {
return bean;
}
public setBean(String bean) {
this.bean = bean;
}
...
//위와 같이 getter와 setter만을 이용해서 프로퍼티를 수정 또는 조회할 수 있다.
}