spring - Bean

Expert Inpyo·2022년 10월 20일
0

Java Spring

목록 보기
2/4

출처
출처1
출처2
출처3

Bean

정의

Spring에서 POJO(plain, old java object)를 Beans라고 부름

Beans는 애플리케이션의 핵심을 이루는 객체임
Spring IoC 컨테이너에 의해 인스턴스화, 관리, 생성됨
(IoC가 관리하는 객체)

Beans는 우리가 컨테이너에 공급하는 설정 메타 데이터(xml 등)에 의해 생성됨
=> 컨테이너는 이 메타 데이터를 통해 Bean의 생성 / Life Cycle / Dependecy를 알 수 있음

애플리케이션의 객체가 지정되면 해당 객체는 getBean()메서드를 통해 가져올 수 있음

XML파일에 Bean을 직접 등록하는 것은 다소 고전적인 방법임
어노테이션(@Bean / @Component / @Service / @Repository 등)으로 생성하는 것이 일반적(Spring Boot)

=> 각 어노테이션들은 @Component를 상속받는 구조(Service, Repository, Controller 등)

=> 따라서, 이러한 어노테이션들은 Component 어노테이션보다 조금 더 구체적인 개념이라고만 알고있자

@Bean, @Configuration 어노테이션 사용하는 방법
=> 자바 설정 클래스를 이용하는 것

Java Bean

특정 형태의 클래스를 가리키는 말
DTO, VO의 형태

private으로 구성, getter/setter 통해서만 접근 가능
전달인자가 없는 생성자를 가지는 구조

POJO와 거의 동일한 개념

Spring Bean

스프링 IoC 컨테이너가 관리하는 Java 객체
스프링에 의해 생성되고, 라이프 사이클을 수행하며 의존성 주입이 일어나는 객체

@Bean과 @Component의 차이

  • @Bean

    • 메서드 위에 선언 가능함

    • 외부 라이브러리를 Bean으로 등록할 때 사용

      • 왜냐? 외부 라이브러리는 ReadOnlyFile => 컴포넌트 선언 불가함
      • 따라서, 인스턴스를 생성하는 메서드를 만든 후 그 메서드에 @Bean을 선언해 진행함
  • @Component

    • 클래스 위에 선언 가능함. 직접 컨트롤이 가능한 객체에서 사용됨
profile
도전! 데이터 엔지니어

0개의 댓글