기존에 자바로 구현되어있던 DI 컨테이너 즉, AppConfig를 스프링에서 제공하는 기능을 통해 스프링으로 전환을 해보았다.
변경된 AppConfig.java의 모습이다
@Configuration, @Bean이 추가된 것을 볼 수 있다.
변경된 OrderApp.java의 모습이다.
기존에는 AppConfig를 생성하고 직접 호출해왔다면,
이제는 스프링 컨테이너(AppConfig)에서 스프링 빈(@Bean 어노테이션이 붙은 것들)으로 등록되어있는 클래스를
applicationContext.getBean() 메서드로 찾아오고 해당 인스턴스의 네이밍을 통해 사용할 수 있게 되었다.
- @Configuration 어노테이션을 통해 스프링 설정(구성) 정보라고 암시해준다.
- @Bean 이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다.
- 스프링 빈은 @Bean이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다(memberService, orderService)
- 이전에는 개발자가 필요한 객체를 AppConfig를 사용해서 직접 조회했지만, 이제부터는 스프링 컨테이너를 통해 필요한 스프링 빈(객체)를 찾아야한다. 스프링 빈은 applicationContext.getBean() 메서드를 사용해서 찾을 수 있다.
- 기존에는 개발자가 직접 자바코드로 모든 것을 했다면 이제부터는 스프링 컨테이너에 객체를 스프링 빈으로 등록하고, 스프링 컨테이너에서 스프링 빈을 찾아서 사용하도록 변경했다.
'Spring' 카테고리의 다른 글
[Spring] @Configuration과 싱글톤, 바이트 코드 조작 (0) | 2024.01.06 |
---|---|
[Spring] 싱글톤 패턴이란 (1) | 2024.01.05 |
[Spring] BeanFactory, ApplicationContext의 개념, 차이점 (1) | 2024.01.05 |
[Spring] IoC, DI, 컨테이너의 개념 (1) | 2024.01.03 |
REST API를 활용하여 블로그 개발하기 (0) | 2023.07.15 |