시냅스

Spring 컨테이너와 Spring Bean 본문

Java, Spring

Spring 컨테이너와 Spring Bean

ted k 2022. 7. 25. 15:10

스프링 빈 Spring Bean 이란?

  • 스프링 컨테이너에 의해 관리되는 자바 객체(POJO, plain old java object)
    • @Bean
      • 개발자가 컨트롤이 불가능한 외부 라이브러리들을 Bean으로 등록하고 싶은 경우
        에 사용된다.
      • 메소드 또는 어노테이션 단위에 붙일 수 있다.
    • @Component
      • 개발자가 직접 컨트롤이 가능한 클래스들의 경우에 사용된다.
      • 클래스 또는 인터페이스에 붙일 수 있다.

 

스프링 컨테이너 Spring Container 란?

  • 스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공하는 역할을 한다.
  • IoC와 DI의 원리가 이 스프링 컨테이너에 적용된다.
  • 스프링 컨테이너는 xml 기반으로 만들 수 있고, 에노테이션 기반의 자바 설정 클래스로 만들 수 있다.
  • 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 사용해서 스프링 빈을 등록한다.

  • 빈 저장소에서 개발자가 원하는 빈을 찾아 빈이 존재한다면 반출한다.
  • CGLIB라는 바이트코드 조작 라이브러리를 이용해서 싱글톤을 유지한다.
  • 스프링 컨테이너의 종류
    • BeanFactory
      • 직접 사용하는 경우는 거의 없다.
      • 스프링 컨테이너의 최상위 인터페이스이다.
      • 지금까지 우리가 사용했던 대부분의 기능은 BeanFactory가 제공하는 기능이다.
    • ApplicationContext
      • 일반으로 스프링 컨테이너라고 불리운다.
      • BeanFactory를 상속받아 빈 관리기능 + 편리한 부가 기능을 제공한다.
Comments