스프링 컨테이너와 의존관계 주입
2024. 7. 3. 11:19ㆍ토비의 스프링 6
지금까지 만든 코드는 아래와 같은 구조로 되어있다.

여기에 스프링을 적용하면


Bean = 오브젝트중에서 애플리케이션을 구성하고 있는 애플리케이션의 기능을 담당하고 제공하는 핵심 클래스의 오브젝트

스프링의 BeanFactory가 앞에서 만든 ObjectFactory가 제공하던 기능을 대체한다. BeanFactory는 ObjectFactory의 구성 정보를 참고해서 동작하게 만든다.
ObjectFactory
package tobyspring.hellospring;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ObjectFactory {
@Bean
public PaymentService paymentService() {
return new PaymentService(exRateProvider());
}
@Bean
public ExRateProvider exRateProvider(){
return new SimpleExRateProvider();
}
}
Client
package tobyspring.hellospring;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import java.io.IOException;
import java.math.BigDecimal;
public class Client {
public static void main(String[] args) throws IOException {
BeanFactory beanFactory = new AnnotationConfigApplicationContext(ObjectFactory.class);
PaymentService paymentService = beanFactory.getBean(PaymentService.class);
Payment payment = paymentService.prepare(100L,"USD", BigDecimal.valueOf(50.7));
System.out.println(payment);
}
}
'토비의 스프링 6' 카테고리의 다른 글
| 싱글톤 레지스트리 (0) | 2024.07.03 |
|---|---|
| 구성정보를 가져오는 다른 방법 (0) | 2024.07.03 |
| 원칙과 패턴 (0) | 2024.07.03 |
| 오브젝트 팩토리 (0) | 2024.07.03 |
| 관계설정 책임의 분리 (0) | 2024.07.03 |