(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 7. 애노테이션 직접 만들기 실무에서도 종종 애노테이션을 직접 만들어 사용한다. 저번 시간 @Qualifier 방식을 적용한 아래 코드를 보면, @Qualifier()안에 문자는 컴파일시 타입 체크가 안된다는 문제가 있다. 이러한 경우, 애노테이션을 만들어 다음과 같은 문제를 해결할 수 있다. @Component @Qualifier("mainDiscountPolicy")// () 안에 문자는 컴파일시 타입 체크X public class RateDiscountPolicy implements DiscountPolicy{...} 1. @MainDiscountPolicy 애노테이션 만들기 @Qualifier 애노테이션에 붙어있는 애노테이..
(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 1. 스프링 컨테이너 생성 ● ApplicationContext = 스프링 컨테이너 1) XML 기반으로 생성 2) 애노테이션 기반의 자바 설정 클래스로 생성 - AppConfig를 사용한 방식 -> 주로 사용하는 방식 // 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicaionContext = 인터페이스 AnnotationConfigApplicaionContext 클래스 = ApplicationContext 인터페이스의 구현체 (참고) 스프링 컨테이너는 1) BeanFac..
(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 8. Ioc, DI, 그리고 컨테이너 1. 제어의 역전: Ioc(Inversion of Control) 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)라 한다. 1) 기존 프로그램 기존 프로그램은 구현 객체가 프로그램 제어 흐름을 스스로 제어했다. - 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성, 연결, 실행 했다. 2) AppConfig 등장 AppConfig의 등장 후, 구현 객체는 자신의 로직을 실행하는 역할만 담당하고 프로그램의 제어 흐름은 AppConfig가 가져간다. - OrderServiceImpl은 필요한 인터페이스를 호출하지만 어떤 구현 객체들이 실행될..