Spring(JAVA Framework)32 의존관계 자동 주입 방법 1. 의존관계 주입 방법 의존관계 주입은 4가지 방법이 있다. (1) 생성자 주입 생성자를 통해서 의존 관계를 주입받는 방법 특징 생성자 호출시점에 딱 1번만 호출되는 것을 보장 불변, 필수 의존관계에 사용 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberReposit.. 2021. 8. 19. 컴포넌트 스캔 (Component Scan) 1. Component Scanning 설정 정보(AppConfig.class)가 없어도 자동으로 스프링 빈을 등록하는 기능 의존 관계도 자동으로 주입하는 @Autowired라는 기능도 제공 package hello.core; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; import static org.springframework.context.annotation.ComponentScan.*; @Configuration @Compo.. 2021. 8. 18. Singleton (싱글톤) 1. 순수한 DI 컨테이너 테스트 웹 애플리케이션에서 여러 고객이 동시에 요청을 보내는 경우 어떻게 반응할 것인가? 순수한 DI 컨테이너(AppConfig) 테스트 ackage hello.core.singleton; import hello.core.AppConfig; import hello.core.member.MemberService; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; public class SingletonTest { @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer() .. 2021. 8. 18. BeanDefinition (스프링 빈 설정 메타 정보) 1. BeanDefinition 스프링 빈 설정 메타정보 BeanDefinition을 이용해서 스프링이 다양한 설정 형식을 지원한다. 이전 글에서 스프링에 Bean을 등록할 때 다양한 설정 형식을 지원하는 것을 알아보았다. Spring Bean(스프링 빈)과 등록 방법 1. 스프링 빈 Spring 컨테이너가 관리하는 자바 객체를 빈(Bean)이라는 용어로 부른다. Spring 컨테이너 안에 있어서 ApplicationContext.getBean()으로 얻어질 수 있는 객체가 빈이다. @Bean이 붙은 메서드의 명 choiyeonho903.tistory.com 역할과 구현을 개념적으로 나누었다. xml을 읽어서 BeanDefinition으로 변환 자바 코드를 읽어서 BeanDefinition으로 변환 스프.. 2021. 8. 18. Spring Bean(스프링 빈)과 등록 방법 (1) 1. 스프링 빈 Spring 컨테이너가 관리하는 자바 객체를 빈(Bean)이라는 용어로 부른다. Spring 컨테이너 안에 있어서 ApplicationContext.getBean()으로 얻어질 수 있는 객체가 빈이다. @Bean이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다. 스프링 컨테이너에 객체를 스프링 빈으로 등록하고, 스프링 컨테이너에서 스프링 빈을 찾아서 사용한다. 2. 스프링 빈 등록 방법 (1) 빈 설정 파일에 직접 빈을 등록 (자바 클래스, xml) (1-1) Annotation 기반 자바 코드 설정 파일 사용 AnnotationConfigApplicationContext() 함수를 사용해서 컨테이너에 자바 설정 파일을 전달한다. src/main/java/hello.core/AppCo.. 2021. 8. 17. BeanFactory와 ApplicationContext BeanFactory와 ApplicationContext은 스프링 컨테이너이다. 스프링 컨테이너와 생성과정 지금까지 스프링의 핵심 원리 1,2,3에서는 Spring의 필요성을 알아보기 위해 순수한 자바 코드만으로 DI를 적용했다. 이제 스프링을 사용해보자. 1. 스프링 컨테이너 스프링 프레임워크는 스프링의 choiyeonho903.tistory.com 1. BeanFactory 스프링 컨테이너의 최상위 인터페이스 스프링 빈을 관리하고 조회하는 역할을 담당한다. getBean()을 제공한다. 2. ApplicationContext BeanFactory 기능을 모두 상속받아서 제공한다. 많은 부가 기능을 추가로 제공한다. 애플리케이션을 개발할 때는 빈을 관리하고 조회하는 기능은 물론이고, 수많은 부가기능이 .. 2021. 8. 17. 이전 1 2 3 4 5 6 다음 반응형