Java Bean

DTO(Data Transfer Object)

DTOλŠ” 계측 κ°„ 데이터 κ΅ν™˜μ„ μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 객체닀. μ—¬κΈ°μ„œ 계측은 View-Controller-Service-DAO와 같은 계측을 의미

데이터λ₯Ό 담을 private 속성과 κ·Έ 속성에 μ ‘κ·Όν•  수 μžˆλŠ” Getter, Setter λ©”μ†Œλ“œλ‘œ κ΅¬μ„±λ˜μ–΄μžˆλ‹€.

VO(Value Object)와 ν˜Όμš©λ˜μ–΄ μ“°μ΄λ‚˜, VOλŠ” λ‚΄λΆ€ 속성값을 λ³€κ²½ν•  수 μ—†λŠ”(imuutable) Read-Only의 의미적 νŠΉμ„±μ„ κ°€μ§„ 객체이닀. 즉, 변경없이 κ°’μœΌλ‘œ μ·¨κΈ‰ν•  객체λ₯Ό λ§ν•œλ‹€.

JavaBean(=Bean) μ΄λž€?

반볡적인 μž‘μ—…μ„ 효율적으둜 ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•œλ‹€.

Bean μ΄λž€ JAVA μ–Έμ–΄μ˜ 데이터(속성)κ³Ό κΈ°λŠ₯(λ©”μ†Œλ“œ)둜 이루어진 ν΄λž˜μŠ€μ΄λ‹€.

  • Default μƒμ„±μž : νŒŒλΌλ―Έν„°κ°€ μ—†λŠ” Default μƒμ„±μžλ₯Ό κ°–κ³  μžˆμ–΄μ•Όν•œλ‹€.

  • Property : μžλ°”λΉˆμ΄ λ…ΈμΆœν•˜λŠ” 이름을 κ°€μ§„ 속성을 Property라고 ν•˜λ©°, PropertyλŠ” set으둜 μ‹œμž‘ν•˜λŠ” μˆ˜μ •μž λ©”μ†Œλ“œ(setter)와 get으둜 μ‹œμž‘ν•˜λŠ” μ ‘κ·Όμž λ©”μ†Œλ“œ(getter)λ₯Ό μ΄μš©ν•΄ μˆ˜μ • λ˜λŠ” μ‘°νšŒν•  수 μžˆλ‹€.

DTO와 Java Beans의 관계에 λŒ€ν•΄μ„  DTO의 ν˜•μ‹μœΌλ‘œ Java Beansλ₯Ό λ”°λ₯΄κ³  μžˆλ‹€κ³  μƒκ°ν•˜λ©΄ λœλ‹€.

Springμ—μ„œ μ§€μΉ­ν•˜λŠ” Beanμ΄λž€, Spring의 IoC Container(=DI Container)λ₯Ό 톡해 관리(생성, μ œμ–΄)λ˜λŠ” 객체λ₯Ό λ§ν•˜λ©°, μ΄λŠ” Spring IoC Containerμ—μ„œ μžμ„Ένžˆ λ³Ό 수 μžˆλ‹€.

Bean λ§Œλ“€κΈ°

λΉˆμ„ λ§Œλ“ λ‹€λŠ” 것은 데이터 객체λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ 클래슀λ₯Ό λ§Œλ“œλŠ” 것이닀. ( getter, setter )

package example;

public class Student {

    private String name;
    private int age;
    private int grade;


    public Student() {

    }

    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 int getGrade() {
        return grade;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }

}

Bean μ‚¬μš©ν•˜κΈ°

κ΄€λ ¨ μ•‘μ…˜ νƒœκ·Έ(useBean, getProperty, setProperty)둜 주둜 데이터λ₯Ό μ—…λ°μ΄νŠΈν•˜κ³ , μ–»μ–΄μ˜€λŠ” 역할을 ν•œλ‹€.

useBean

νŠΉμ • Bean을 μ‚¬μš©ν•œλ‹€κ³  λͺ…μ‹œν•  λ•Œ μ‚¬μš©ν•œλ‹€.

<jsp:useBean id = "λΉˆμ΄λ¦„" class="νŒ¨ν‚€μ§€λͺ…을 ν¬ν•¨ν•œ 클래슀λͺ…" scope="μŠ€μ½”ν”„ λ²”μœ„"/>
<jsp:useBean id = "student" class="example.Student" scope="page"/>
  • Scope λ²”μœ„

scope

μ„€λͺ…

page

μƒμ„±λœ νŽ˜μ΄μ§€ λ‚΄μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯

request

μš”μ²­λœ νŽ˜μ΄μ§€ λ‚΄μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯

session

μ›Ή λΈŒλΌμš°μ € 생λͺ…주기와 λ™μΌν•˜κ²Œ μ‚¬μš© κ°€λŠ₯

application

μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ 생λͺ…주기와 λ™μΌν•˜κ²Œ μ‚¬μš©κ°€λŠ₯

setProperty

데이터 값을 μ„€μ •ν•  λ•Œ μ‚¬μš©ν•œλ‹€.(setter)

<jsp:setProperty name="빈 이름" property="속성 이름" value ="속성 κ°’" />
<jsp:setProperty name="student" property="name" value ="홍길동" />

getProperty

데이터 값을 κ°€μ Έμ˜¬ λ•Œ μ‚¬μš©ν•œλ‹€.(getter)

<jsp:getProperty name="빈 이름" property="속성 이름" />
<jsp:getProperty name="student" property="name" />

예제

  • Java Class

package example;

public class Student {

    private String name;
    private int age;
    private int grade;


    public Student() {

    }

    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 int getGrade() {
        return grade;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }

}
  • jsp둜 κ΅¬ν˜„ν•˜κΈ°

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:useBean id="student" class="example.Student" scope="page" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    <jsp:setProperty name="student" property="name" value="λ°•μ„œ"/>
    <jsp:setProperty name="student" property="age" value="13"/>
    <jsp:setProperty name="student" property="grade" value="6"/>

    이름  : <jsp:getProperty name="student" property="name" /><br />
    λ‚˜μ΄  : <jsp:getProperty name="student" property="age" /><br />
    ν•™λ…„  : <jsp:getProperty name="student" property="grade" /><br />

</body>
</html>

Last updated

Was this helpful?