Spring) Spring Container

TigerFriend·2023년 7월 26일
0

웹 개발

목록 보기
2/7

📌 Spring Container

Spring Container는 IOC(Inversion of Control)를 구현하기 위해 spring에서 사용하는 핵심 기술이다.

IOC란, 제어의 역전으로 여기서는 프로그램 제어를 코드, 객체에서 외부로 위임하는 것이다.

spring은 Spring Container를 통해 빈(bean)객체를 생성, 관리한다.

여기서 중요한 점은 Spring은 각 객체가 다음 객체를 호출하고 메소드를 부르는 것이 아니라 Container에게 권한을 위임하여 외부에서 객체 생성, 소멸, 호출을 관리하게 한다는 것이다.

@Configuration

빈 구성정보를 어노테이션으로 명시하는 @Configuration이다.

클래스앞에 명시함으로써 컨테이너의 빈 구성정보로 사용할 것을 알리는 용도로 사용된다.

@Bean

메소드 앞에 작성하면 컨테이너에 빈 객체를 등록하는 어노테이션으로 작동한다.

@Configuration
class ContainerConfiguration() {

	@Bean
    public MakeIt makeIt(){
    	return new ObjectMakeIt();
    }
    
    @Bean
    public DoIt doIt(MakeIt makeIt){
    	return new DoIt(makeIt);

위처럼 작성하고

ApplicationContext applicationContext = 
new AnnotationConfigApplicationContext(ContainerConfiguration.class);

//생성한 객체 확인
DoIt doIt = applicationContext.getBean(DoIt.class);

ApplicationContext의 구현체인 AnnotationConfigApplicationContext에 Configuration으로 등록한 클래스를 매개변수로 넣어 컨테이너를 생성한다.

doIt메소드가 실행될 때, makeIt객체가 필요함을 컨테이너가 스스로 확인하여 Bean객체로 등록되어 있는 makeIt메소드를 통해 ObjectMakeIt()으로 DoIt(ObjectMakeIt)을 생성한다.

이렇게 IOC를 만족시킨다.

📌 정리

이처럼 스프링에서는 Spring Container를 통해 IOC를 구현하며, DI(Dependency Injection) : 의존성을 주입한다.

이는 OOP프로그래밍을 지향하는 객체지향의 근본과 가치를 개발자가 쉽게 사용할 수 있도록 도와주게 된다.

profile
TigerFriends

1개의 댓글

comment-user-thumbnail
2023년 7월 26일

감사합니다. 이런 정보를 나눠주셔서 좋아요.

답글 달기