[Spring]-스프링 IoC컨테이너와 Spring Bean(스프링 빈) 이란?

2020년 01월 11일 by Xion

    [Spring]-스프링 IoC컨테이너와 Spring Bean(스프링 빈) 이란? 목차

[ Spring IoC 컨테이너 ]

-BeanFactory

-애플리케이션 컴포넌트의 중앙 저장소.

-빈 설정 소스로 부터 빈 정의를 읽어들이고, 빈을 구성하고 제공한다.

-Inversion of Control : 의존 관계 주입(Dependency Injection) 이라고 한다.

-의존 객체를 직접 만들어 사용하는게 아니라 , 주입 받아 사용하는 방법

 

의존성 주입을 하고 싶을 경우 bean이 되어야한다.

 

[ bean ]

Spirng IOC 컨테이너에 등록되는 baen들은 기본적으로 single ton Scope로 등록이 된다.

-single ton ->1개만 만들어서 사용하는 것.

-프로토타입 ->매번 다른 객체를 만들어서 사용하는것.

 

 

bean으로 등록 되면 좋은 장점

-라이프사이클 인터페이스 지원.

-ex)어떤 bean이 등록 되었을때, 무엇인가 하고 싶다. (가) 가능

 

 

bean을 설정할때

ref 뒤에는 다른 bean의 id값이 와야함

 

ex)

 

<bean id="bean1" class="">

<property name="setter"  ref="다른bean의 id" />

</bean>

 

하지만 ! 

이러한 방법들이 굉장히 번거롭기 때문에 

등장한 녀석이 "<context:component-scan=""/> 이다.

이 패키지부터 bean을 스캐닝 하여 등록하겠다는 의미이다.

기본적으로

"@Component"

"@Repository"

라는 에노테이션을 이용하여 등록이 가능하다.

이 과정은 주입 과정이  없이 때문에 "Autowired"라는 것을 사용하여 bean주입을 받을 수 있다.

 

 

[ ApplicationContext ]

-BeanFactory를 상속받음.

-BeanFactory가 가지고 있는 기능을 외에 더 많은 기능을 가지고 있음.

-메시지 소스 처리 기능(i18n)

-이벤트 발행 기능

-리소스 로딩 기능