Java

[자바] 자바 빈즈

미소여우 2022. 8. 29. 10:46
728x90

자바 빈즈란(Java Beans)

Builder Tool에서 시각적으로 조작할 수 있는 재사용 가능한, 자바로 작성된 소프트웨어 컴포넌트

  • 현재 실행되고 있는 JVM 프로세스 내에서 실행되고 있는 인스턴스이며 이 중 어떤 인스턴스들은 필요에 따라 내가 호출하여 사용할 수 있음
  • 자바로 작성한 자바 클래스 중에 바 빈즈 컨벤션(Java Beans Convention) 에 맞게 작성된 클래스를 JSP에서 사용 가능

EJB(Enterprise Java Beans)와는 다른 것

자바 빈즈 사용 목적

  • JSP페이지의 로직 부분을 분리해서 코드를 재사용함으로 프로그램의 효율을 높임
  • 프로그램의 모듈화(component)는 코드를 재사용하므로 프로그램의 작성 기간이 단축되고, 이미 실 시스템에 사용했던 코드를 사용하므로 코드의 안정성이 보장되며 유지 보수가 쉽다.

자바 빈즈 컨벤션(Java Beans Convention)

  • 자바빈은 기본(default)패키지 이외의 특정 패키지에 속해 있어야 한다.
  • 클래스는 인자(Argument)가 없는 기본 생성자(Default constructor)를 갖는다.
  • 클래스의 멤버 변수는 프로퍼티(Properties)라고 하며 private 접근 제한자를 가져야 한다.
  • 클래스의 프로퍼티들은 Getter/Setter를 통해 접근할 수 있어야 한다.
    • Getter/setter의 접근 제한자는 public이어야 한다.
    • Getter의 이름은 get{프로퍼티 이름} 이며, Setter의 이름은 set{프로퍼티 이름}이다
    • Read Only인 경우 Setter는 없을 수 있다.
    • Getter의 경우 파라미터가 존재하지 않아야 하며, setter의 경우 하나 이상의 파라미터가 존재한다.
  • 프로퍼티의 타입이 Boolean인 경우 is로 시작할 수 있다.

자바 빈즈 예제

class Bird {

    private String name;
    private boolean fly;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean isFly() {
        return this.fly;
    }

    public void setFly(boolean fly) {
        this.fly = fly;
    }
    
    // 기본 생성자
    public Bird() {}
}

그런데 위와 같이 필드가 많아지면 getter, setter의 양도 많아지게 된다. 이러면 코드가 많이 번잡해 보일 수도 있는데, 이를 편리하게 도와주는 도구인 롬복(lombok)을 사용하면 빌드 시 자동으로 생성해줄 수 있다. 롬복에 대해서는 나중에 정리해보도록 하겠다.

728x90