IT/Programming / / 2023. 4. 19. 10:17

JSP 자바빈즈(JavaBeans)

반응형

Java Beans?

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

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

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

 

1) 자바 빈 규약

- 멤버변수마다 별도의 getter/setter 메소드가 존재해야 한다.

- getter는 파라미터가 존재하지 않아야 한다.

- setter는 반드시 하나 이상의 파라미터가 존재해야 한다.

- 파라미터가 존재하지 않는 기본 생성자를 가진다.

- 멤버변수의 접근 제한자는 private이고, 각 setter/getter는 public으로 정의되어야 하며, 클래스는 public으로 정의한다.

 

2) 용도

- 웹페이지를 디자인 부분과 로직 부분을 분리하기 위함이다.

- 여러개 변수를 묶어서 관리하기 위해서이다.

** 자바 빈즈는 JSP 페이지의 로직 부분을 분리해서 코드를 재사용함으로 프로그램의 효율을 높이기 위해 사용한다. 프로그램의 모듈화는 코드를 재사용하므로 프로그램의 작성기간이 단축되고, 이미 사용되던 코드이므로 안정성이 보장되며 유지/보수가 쉽다. MVC 패턴에서 자바 빈은 프로그램 로직을 소유할 수 있고 DB와 연동해서 작업을 처리한다.

 

자바 빈즈 예제

class PersonBean

/***********************************
* * 
* 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;
    }
}
 

class TestPersonBean

/***********************************
* * 
* 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]" : "");
    }
}
 

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유