(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 7. 애노테이션 직접 만들기 실무에서도 종종 애노테이션을 직접 만들어 사용한다. 저번 시간 @Qualifier 방식을 적용한 아래 코드를 보면, @Qualifier()안에 문자는 컴파일시 타입 체크가 안된다는 문제가 있다. 이러한 경우, 애노테이션을 만들어 다음과 같은 문제를 해결할 수 있다. @Component @Qualifier("mainDiscountPolicy")// () 안에 문자는 컴파일시 타입 체크X public class RateDiscountPolicy implements DiscountPolicy{...} 1. @MainDiscountPolicy 애노테이션 만들기 @Qualifier 애노테이션에 붙어있는 애노테이..
(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 5. 조회 빈이 2개 이상(문제) 1. @Autowired @Autowired는 타입(Type)으로 조회해 의존관계를 주입해준다. // ac.getBean(DiscountPolicy.class) @Autowired private DiscountPolicy discountPolicy DiscountPolicy 타입으로 스프링 빈을 조회해 주석한 코드와 유사하게 동작한다. (실제로는 더 많은 기능 제공) 2. 조회 빈이 2개 이상일 때 문제 예시 코드 작성 스프링 빈 조회에서 학습했듯이 타입으로만 조회할 때, 선택된 빈이 2개 이상이면 문제가 발생한다. 해당 문제 상황을 만들기 위해 DiscountPolicy의 하위 타입인 FixDi..
(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 2. 옵션 처리 @Autowired를 사용했지만 주입할 스프링 빈이 없어도 동작해야할 때가 있다. 자동 주입할 대상이 없을 때, @Autowired만 사용하면 오류가 발생한다. (기본적으로 required=true이기 떄문에) package hello.core.autowired; public class AutowiredTest { @Test void AutoWiredOption() { // TestBean 스프링 빈 등록 ApplicationContext ac = new AnnotationConfigApplicationContext(TestBean.class); } static class TestBean { // 자동으로 주입할 ..
(인프런) 김영한님의 스프링 핵심 원리-기본편을 공부하고 리뷰한 글입니다. 1. 컴포넌트 스캔과 의존관계 자동 주입 시작하기 지금까지는 자바 코드의 @Bean이나 XML의 을 통해서 설정 정보에 직접 스프링 빈을 등록했다. 예제에서는 등록해야할 스프링 빈이 몇 개가 안됐지만 규모가 커지면 반복과 누락의 문제가 있다... 그래서, 1) 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 2) 의존관계도 자동으로 주입하는 @Autowired 라는 기능도 제공한다. 기존 AppConfig.java는 과거 코드, 테스트를 유지하기 위해 남겨두고 새로운 AutoAppConfig.java를 만들자. 1. AutoAppConfig.java - @ComponentScan 1..