어노테이션을 사용한 의존성 주입을 하기 전에 Spring Container에 클래스에서 사용된 스프링 어노테이션을 검색해 처리할 수 있도록 해줘야 한다.
<beans>
<context:component-scan base-package="xyz.itwill05.di"/>
</beans
기억이 안난다면 링크 클릭❗
Spring 03 Annotation
클래스를 스프링 컨테이너가 관리할 수 있는 Spring Bean으로 등록하기 위한 어노테이션
클래스의 이름이 자동으로 식별자(beanName)으로 설정
클래스명의 첫문자는 소문자로 변환
@Component 어노테이션의 value 속성을 사용하여 beanName 변경 가능
@Primary는 기본 Bean을 지정하는 방법이지만, 특정한 Bean을 명확히 지정하고 싶을 때는 @Qualifier를 사용
@Qualifier는 이름을 기반으로 주입할 Bean을 지정하는 방식
필드에 저장될 객체를 직접 지정하여 의존성 주입을 하기 위한 어노테이션
@Autowired 어노테이션에 종속된 어노테이션
DAO 클래스(Repository 클래스)를 스프링 컨테이너가 관리할 수 있는 Spring Bean으로 등록하기 위한어노테이션
클래스의 이름을 자동으로 식별자(beanName)으로 사용하지만 value 속성을 사용해 변경 가능
트랜잭션 관리자에 의해 클래스의 메소드에 문제가 발생될 경우 롤백 처리 가능
Service 클래스를 스프링 컨테이너가 관리할 수 있는 Spring Bean으로 등록하기 위한 어노테이션
@Component,@Repository와 같이 value 속성을 사용해 식별자(beanName) 변경 가능
예외가 발생될 경우 ExceptionHandler를 사용해 예외 처리 가능
스프링 컨테이너로부터 Spring Bean으로 등록된 클래스의 객체를 제공받아 필드에 자동으로 저장되게 의존성 주입하기 위한 어노테이션
클래스의 필드에 @Autowired 어노테이션을 사용하여 의존 성 주입 - 필드 레벨의 의존성 주입
@Autowired 어노테이션을 사용해 의존성 주입필드의 자료형이 인터페이스인 경우 인터페이스를 상속받은 자식클래스가 Spring Bean으로 2개 이상 등록된 경우 의존성 주입 실패하여 예외를 발생한다.
의존성 주입하고자 하는 클래스의 식별자(beanName)을 필드명과 동일하게 변경
@Autowired 어노테이션은 동일한 자료형의 Spring Bean이 려어개인 경우 autowire 속성값을 [byName]으로 설정한 경우 같은 방법으로 의존성 주입의존성 주입하고자 하는 클래스에 @Primary 어노테이션 사용
의존성 주입을 위한 필드에 @Qualifier 어노테이션 사용