January 18, 2022
Spring을 처음 공부해오면서, JSP를 공부하면서 자주 나오는 이름이 있었다. 그것은 바로 Java Bean 자바빈(자바빈즈)이다. 대체 빈이 무엇인지, 무슨 역할을 하는지 이번 포스팅에서 정리해보도록 하겠다.
자바빈(Java Bean)는 자바로 작성된 소프트웨어 컴포넌트를 일컫는 말로 데이터 표현을 목적으로 하는 자바 클래스이며 다음의 표준 규약이 있다.
클래스의 프로퍼티들은 Getter/Setter를 통해 접근할 수 있어야 한다
다음은 위키에나와있는 자바빈의 예제이다.
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;
}
}
보면 위의 규약들을 지킨 클래스라고 말할 수 있다. 즉 위에서 말한 자바빈의 규약들을 지킨 자바 클래스를 자바빈라고 한다.
JavaBean의 목적은 여러가지 다른 오브젝트 들을 하나의 오브젝트(Bean)에 담기 위함이다.
File I/O, 네트워크 통신등을 할때 Stream으로 변환을 해주어야하는데, 객체를 Stream으로 변환해주는 과정을 직렬화(Serilization)이라고 한다. 자바빈의 목적은 여러가지 오브젝트들을 하나의 오브젝트에 담기 위해서 이고, 이를 담아서 File IO나 DB에 저장을 해준다. 이때 Stream으로 변환을 하기위해 Serializable인터페이스가 포함된다.
Spring에서도 Bean이라는 개념이 나와 많이 햇갈렸는데 Spring에서 Bean이란 스프링 IoC컨테이너가 관리하는 Java 객체를 뜻한다.
스프링 IoC가 관리하는 객체는 스프링에 의해 생성되고, 라이프 사이클을 수행하고, 의존성 주입이 일어나는 객체를 말한다.
자바빈을 이용하면 JSP페이지를 보다 간단하게 표현해줄 수 있다. form에 있는 데이터들을 한번에 받아 자바빈즈 객체에 저장할 수 있고 생성할 수도 있다.
관련 예제들은 다른분들이 만들어 주신 예제를 참고하자.