자바 Bean & 스프링 Bean
자바 Bean
- 특정한 정보(id, name 등)을 가지고 있는 클래스를 표현하는 하나의 규칙
- 데이터를 표현하기 위한 목적을 지니고 있다.
- 위 규칙들을 지닌 클래스를 Java Bean 이라고 한다.
관례
- 반드시 클래스는 패키지화 되어야한다.
- 멤버 변수는 property 라고 한다.
- 멤버 변수는 private 로 지정하고, 외부 접근을 위한 get, set 메소드를 정의한다.
- get, set 메서드는 public 으로 정의한다.
- 클래스는 인자(Argument) 가 없는 기본 생성자를 갖는다.
- 직렬화(Serialize) 가 가능해야한다.
- getter 및 setter 메서드라는 특정 값을 가져오고 설정하는 메서드가 있어야 한다.
Code
public class JavaBean {
private String bean;
private int beanValue;
public JavaBean() {
}
public String getBean() {
return BeanName;
}
public void setBean(String bean) {
this.bean = bean;
}
public int getbeanValue() {
return beanValue;
}
public void setbeanValue(int beanValue) {
this.beanValue = beanValue;
}
}
스프링 Bean
- 스프링에서의 Bean은 스프링 IoC 컨테이너가 관리하는 Java 객체를 뜻한다.
- 일반 객체와 다른 점이 없다.
- 그냥 스프링 IoC 컨테이너에서 관리되는 객체를 Bean 이라고 부른다.
제어의 역전(IoC, Invertion of Control)
- IoC 의 개념에 대해 알아보자.
객체의 제어권을 프레임워크의 컨테이너에게 넘기는 개념
일반적으로 자바에서는 개발자가 각 객체를 직접 생성하고 제어해야 했다.
하지만 스프링에서는 스프링 컨테이너에 Bean(객체)를 등록하기만 하면, 스프링 컨테이너에서 객체의 생명주기를 컨트롤 해준다.
즉, 객체에 대한 제어권이 개발자 -> 스프링 컨테이너로 역전되기 때문에 제어의 역전이라고 한다.
스프링 IoC 에서 관리되는 객체란?
- 스프링에 의해 생성되고, 라이프 사이클을 수행하고, 의존성 주입이 일어나는 객체
즉, 개발자가 관리하는 객체가 아닌 스프링에게 제어권을 넘긴 객체를 스프링에서 Bean 이라 부른다.