Spring

[Spring] 스프링 컨테이너, 스프링 빈의 사용법(@Configuration, @Bean)

뚜코맨 2024. 1. 3. 16:42

 

 

기존에 자바로 구현되어있던 DI 컨테이너 즉, AppConfig를 스프링에서 제공하는 기능을 통해 스프링으로 전환을 해보았다.

 

 

 

 

 

 

변경된 AppConfig.java의 모습이다

@Configuration, @Bean이 추가된 것을 볼 수 있다.

변경된 OrderApp.java의 모습이다.

기존에는 AppConfig를 생성하고 직접 호출해왔다면,

이제는 스프링 컨테이너(AppConfig)에서 스프링 빈(@Bean 어노테이션이 붙은 것들)으로 등록되어있는 클래스를

applicationContext.getBean() 메서드로 찾아오고 해당 인스턴스의 네이밍을 통해 사용할 수 있게 되었다.

 

  • @Configuration 어노테이션을 통해 스프링 설정(구성) 정보라고 암시해준다.
  • @Bean 이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다.
  • 스프링 빈은 @Bean이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다(memberService, orderService)
  • 이전에는 개발자가 필요한 객체를 AppConfig를 사용해서 직접 조회했지만, 이제부터는 스프링 컨테이너를 통해 필요한 스프링 빈(객체)를 찾아야한다. 스프링 빈은 applicationContext.getBean() 메서드를 사용해서 찾을 수 있다.
  • 기존에는 개발자가 직접 자바코드로 모든 것을 했다면 이제부터는 스프링 컨테이너에 객체를 스프링 빈으로 등록하고, 스프링 컨테이너에서 스프링 빈을 찾아서 사용하도록 변경했다.