자바빈(JavaBean)이란 JavaBean규격서에 따라 작성된 자바 클래스를 말합니다.

보통 웹사이트를 만들때에는 디자이너와 프로그래머가 협력해서 개발을 합니다.

그런데 프로그래머가 JSP페이지에 자바코드를 작성하면 디자이너입장에서는 해석하기가 힘들어집니다.

또한 JSP페이지에 뷰(View)부분과 로직(model)부분을 같이 작성하게 되면 재사용의 어려움이 발생한다고 합니다.

그래서 로직부분의 코드를 따로 분리해서 작성함으로 프로그램의 효율을 높이는 것이 자바빈의 사용목적입니다.


규격서에 적힌 규격을 알아야 그 규격에 맞게 작성을 하겠네요!!


1) 반드시 클래스(빈)은 패키지화 하여야한다.

2) 멤버변수는 Property(프로퍼티)라고 부르자. 

3) 클래스는 필요에 따라 직렬화를 할 수 있다.

4) Property의 접근제어자는 private이다.

5) Property마다 별도의 get/set메소드가 존재해야한다. 이때 메소드의 이름은 get으로시작하고, set으로 시작해야한다.

6) get/set메소드는 public이어야 한다. 

7) 외부에서 Property를 필요로 할 때에는 직접 접근하지 않고 반드시 메소드를 이용해서 접근한다.

8) 자바빈 클래스의 Property는 반드시 읽기 또는 쓰기가 가능해야 하는데 읽기 전용인 경우에는 get메소드만 정의할 수 있다.

9) get메소드는 파라미터가 존재하지 않아야하며, set메소드는 하나 이상의 파라미터가 존재해야한다.

10) 만일 Property가 boolean형이라면 get메소드대신 is메소드를 사용해도 된다.


위의 규격을 만족하는 클래스를 작성해보겠습니다.

MemberInfo.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.memberInfo;
 
public class MemberInfo {
    private String id;
    private String name;
    private int    age;
    private String address;
    private String email;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
}
cs


규격대로 패키지화 했구, 각 프로퍼티마다 set, get메소드 생성하였습니다.

만들어진 MemberInfo를 BeanTest.java에서 설정을하고 출력해보도록 하겠습니다.

BeanTest.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.memberInfo;
 
public class BeanTest {
    public static void main(String[] args) {
        MemberInfo mi = new MemberInfo();
        mi.setId("Sogom");
        mi.setName("소곰");
        mi.setAge(26);
        mi.setAddress("경기도");
        mi.setEmail("abcd@gmail.com");
        
        String id = mi.getId();
        String name = mi.getName();
        String addr = mi.getAddress();
        String email = mi.getEmail();
        int age = mi.getAge();
 
        System.out.println("아이디 : " + id + "\n"
                        + "이름 : " + name + "\n"
                        + "나이 : " + age + "\n"
                        + "주소 : " + addr + "\n"
                        + "이메일 : " + email + "\n");
    }
}
cs

결과



다음 포스팅에서는 <jsp:uesBean>액션태그를 이용해서 자바객체들을 사용할 수 있는 방법을 정리하겠습니다.