[ 최종 수정일 : 2023년 09월 20일 ]

 

 

 

자바빈즈의 표준 스펙에 대한 발행글입니다.

 

 


 

 

스펙에서 클래스 선언시, 아래와 같은 조건에 맞추어 선언된 클래스를 " 자바빈즈(JavaBeans) 클래스"라고 합니다.

이 클래스로부터 생성된 객체를 "자바빈(JavaBean) 컴포넌트, 자바빈, 빈" 다양하게 불리고 있습니다.

 

다음은 자바 빈즈의 특징입니다.

  1. 모든 필드는 private 접근제한자로 캡슐화(은닉화)해야 합니다.
  2. 각 필드별로 Getter/Setter 메서드를 가져야 합니다.
  3. 매개변수 없는 기본 생성자(Default Constructor)를 가지고 있어야 합니다.
  4. POJO 클래스이어야 합니다.
  5. [ Optional ] Serializable 태그 인터페이스를 implements해야 합니다.

 

자바 빈즈는 은닉화된 필드를 감추고 속성(property)만 외부에 노출시킵니다.

즉, 외부에서 빈 객체를 볼 때, 노출된 Getter/Setter 메서드에 의해 속성이 보이게 됩니다.

 

여기서 속성(Properties)이란,

카멜 기법이 적용된 Getter/Setter의 메서드에서 접두사(set, get)을 떼어내고 남은 메서드 이름이 속성으로 취급됩니다.

 

자바 빈즈 클래스는 다음과 같이 작성됩니다.
@NoArgsConstructor
public class Person {
    private String name;
    private Integer age;
    
    
    // 속성은 set을 제거한 'Name'
    public void setName(String name) {
        this.name = name;
    } // setName
    
    // 속성은 get을 제거한 'Name'
    public String getName() {
        return this.name;    
    } // getName
    
    // 속성은 set을 제거한 'Age'
    public void setAge(String Age) {
        this.Age = Age;
    } // setAge
    
    // 속성은 get을 제거한 'Age'
    public String getAge() {
        return this.Age;    
    } // getAge
    
} // end class

 

스프링에서 취급하는 클래스는 모두 자바 빈즈 스펙에 따라 만들어집니다.

 

+ Recent posts