본문 바로가기

기타

자바빈(Java Bean)이란? / 생성 및 사용법 / 자바빈을 사용하는 이유

자바빈(Java Bean)이란?

 

어제 EL, JSP Action Tag, jstl 구문 수업을 듣고,

EL에 대해 공부하려고 오라클 튜토리얼을 검색하다 보니 "JavaBean" 이라는 용어가 보였다.

https://docs.oracle.com/javaee/6/tutorial/doc/bnahq.html

 

Overview of the EL - The Java EE 6 Tutorial

Overview of the EL The EL allows page authors to use simple expressions to dynamically access data from JavaBeans components. For example, the test attribute of the following conditional tag is supplied with an EL expression that compares 0 with the number

docs.oracle.com

 

The EL allows page authors to use simple expressions to dynamically access data from JavaBeans components.

 페이지 관리자는 EL구문으로 간결한 표현을 통해 java bean구성요소로부터 동적인 데이터에 접근할 수 있다

 

여기서 꼬리를 무는 질문,,,

자바빈이 뭐야..? 몇 번 들어본 것 같은데..?

 

다시 검색해보았다.

 

https://docs.oracle.com/javaee/5/tutorial/doc/bnair.html

 

JavaBeans Components - The Java EE 5 Tutorial

JavaBeans Components JavaBeans components are Java classes that can be easily reused and composed together into applications. Any Java class that follows certain design conventions is a JavaBeans component. JavaServer Pages technology directly supports usi

docs.oracle.com

 

JavaBeans components are Java classes that can be easily reused and composed together into applications. Any Java class that follows certain design conventions is a JavaBeans component.
자바빈  요소는 
쉽게 재사용 및  어플리케이션 구성이 가능한 자바 클래스이다.
특정 디자인 규약을 따르는 모든 자바 클래스는 자바빈 요소라고 불릴 수 있음 


JavaServer Pages technology directly supports using JavaBeans components with standard JSP language elements. You can easily create and initialize beans and get and set the values of their properties.
JSP에서 JSP language elements를 통해 자바빈 사용이 가능
(bean 초기화 및 property 값 가져오기/세팅하기 가능)

 

즉, 자바빈은 자바빈 규약을 따르는 모든 자바 클래스를 통칭한다.

그렇다면  자바빈 규약이란..?

 

  1. defulat 패키지가 아닌 패키지 하위에 있는 클래스
  2. 기본 생성자가 존재 (no-arg constructor)
  3. Getter/setter를 통해서 properties를 조작(getProperty, setProperty)
  4. 멤버변수(property)의 접근제어자는 private이고 각 set/get메소드의 접근제어자는 public, 클래스의 접근제어자는 public으로 정의

 


자바빈 생성 및 사용법 

<jsp:useBean id="bean이름"
    class="클래스명" scope="범위(page, request, session,application 중 하나)"/>
<jsp:useBean id="beanName"
   class="클래스명" scope="범위(page, request, session,application 중 하나)
    <jsp:setProperty .../>
</jsp:useBean>

자바빈으로 멤버변수 값 얻는 법 

1. EL 구문

${ 객체명.필드명}

2.jsp:getProperty 요소 사용하기

getProperty요소는 멤버변수 값을 String형으로 변환하여 response stream에 전달

<jsp:getProperty name="beanName" property="propName

자바빈을 사용하는 이유?

 

JSP는 MVC패턴 중 View단 구현에 사용되는데,

html 기반 코드에서 servlet단에서 넘겨받은 자바 요소를 사용하기 위해서 스크립팅 요소, 자바빈 등에서 선택하여 코드를 짤 수 있음

그러나 스크립팅 요소를 사용하게 되면, 스크립트 언어로 이루어진 뷰단의 통일감을 헤칠 수 있고 무엇보다 뷰단을 담당하는 퍼블리셔와의 소통에 어려움이 있을 수 있는데, JSP자체가 태그로 이루어진 스크립트 언어이고 , 퍼블리셔와 개발자간의 원활한 소통을 위해 자바코드로 이루어진 스크립트 요소보다 자바빈이 효율적

 

소회..

수업에서 세미프로젝트 view단을 짤 때에는 아직 자바빈을 배우지 않은 상태여서 

스크립팅 요소들로 view단을 구성했었다. 그러다보니  초반 프로젝트 코드를 짤 때에는 뷰단만 가면 자바코드와 태그가 섞여서 아~ 정신없다~는 느낌이 들었는데javabean, el을 배우고 나니 여러모로 자바빈, jstl 등을 사용하는 것이 효율적이라는 것이 확 와닿았다

 

 

 

 

 

 


References

 

https://choitaetae.tistory.com/96

 

[JSP] 자바빈(JavaBean)이란?

자바빈(JavaBean) JSP에서 객체를 가져오기 위한 기법으로 데이터 전달 오브젝트 파일 DTO(Data Transfer Object)라고도 한다. 자바로 작성된 컴포넌트들 즉, 클래스(Class)를 일반적으로 말한다. JSP 프로그

choitaetae.tistory.com

https://ttuk-ttak.tistory.com/39

 

[JSP] JavaBean, 자바빈은 왜 사용될까

JavaBean 자바빈이란 무엇인가? 자바빈은 자바빈 규약 또는 자바빈 관례에 따라 만들어진 클래스입니다. 원래 자바빈은 비주얼 툴에서 조작하는 컴포넌트를 의미했습니다. 그러나 비주얼 툴이 쇠

ttuk-ttak.tistory.com

https://docs.oracle.com/javaee/5/tutorial/doc/bnair.html

 

JavaBeans Components - The Java EE 5 Tutorial

JavaBeans Components JavaBeans components are Java classes that can be easily reused and composed together into applications. Any Java class that follows certain design conventions is a JavaBeans component. JavaServer Pages technology directly supports usi

docs.oracle.com

 

 

https://docs.oracle.com/javaee/6/tutorial/doc/bnahq.html

 

Overview of the EL - The Java EE 6 Tutorial

Overview of the EL The EL allows page authors to use simple expressions to dynamically access data from JavaBeans components. For example, the test attribute of the following conditional tag is supplied with an EL expression that compares 0 with the number

docs.oracle.com