Java/Spring

Java Bean & Spring Bean

SeongWon 2021. 11. 19. 17:50
반응형

Java Bean?

 

Java Bean은 데이터를 표현하는 것을 목적으로 하는 자바 클래스로, Java Bean 규약에 맞춰서 만드는 클래스이다.

 

<Java Bean 규약>

  • 기본 생성자가 존재해야 한다.
  • 모든 멤버 변수의 접근 제어자는 private이다.
  • 멤버 변수마다 getter / setter가 존재해야 한다. -> boolean인 경우는 'is'를 붙임
  • 외부에서 멤버변수에 접근하기 위해서는 메소드로만 접근할 수 있다.
  • 직렬화(Serializable)가 가능해야 한다.

 


 

※ 직렬화

: 시스템 내부에서 사용하는 객체 혹은 데이터를 외부의 시스템에서도 사용할 수 있도록 변환하는 것으로, 자바에서는 JVM의 Heap 영역에 상주하는 객체를 byte 형태로 변환시키거나(직렬화), byte 형태를 다시 자바 객체로 변환하는 것(역직렬화)을 말한다.

 

-> Serializable interface를 implements한 클래스는 직렬화 가능

 


Spring Bean?

 

Spring Bean은 spring framework의 container에 의해 등록, 생성, 조회, 관계 설정이 되는 객체이다.

일반 Java Object와 동일하지만 IOC 방식으로 관리되는 오브젝트를 뜻한다.

 

Spring Bean은 Java Bean과는 달리 생성 규칙은 없음.

 


 

※ 컨테이너 (Container)

: 컨테이너는 보통 인스턴스의 생명주기를 관리, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것이다.

 

즉, 작성한 코드의 처리과정을 위임받은 독립적인 존재라고 생각하면 된다. 컨테이너는 적절한 설정만 되어 있다면 작성된 코드를 스스로 참조한 뒤 알아서 객체의 생성과 소멸을 컨트롤 한다.

 

Servlet 컨테이너는 Servlet의 생성, 초기화, 서비스, 소멸에 관한 모든 권한을 가지고 있다. 개발자들이 직접 Servlet을 생성하고 서비스하지는 않는 것이다. 이처럼 Servlet 인스턴스에 대한 생명주기를 관리하는 기능을 가진다.

 

Spring 컨테이너는 스프링 프레임 워크의 핵심부에 위치하며, 종속 객체 주입을 이용하여 Application을 구성하는 컴포넌트들을 관리한다. 즉, 작성된 코드는 컨테이너를 사용하게 됨으로써 프로그램을 이용하는 이용자의 호출에 의해 컨테이너가 동작하게 되는 구조이다.

반응형