본문 바로가기

컴퓨터공학/Spring & Hibernate

Spring> Annotation> Qualifier for Injection

@Autowired를 통해서 우리가 필요한 클래스를 spring에서 자동으로 찾고 연결해주는 걸 알 수 있었는데

만약에 아래와 같이 @Component 로 지정된 클래스 객체가 여러 개면 어떻게 해야할까?

 

그래서 Qualifier를 사용하는데

직접 이름을 정해주거나 아니면 클래스 이름인 BeanId를 사용하는 방법이 있다.

하지만 이것도 예외사항이 있다.

첫 번째와 두 번째 글짜가 대문자이면 소문자로 변환하여 인식하지 않는다.

 예를 들어서 위 예시인 RESTFortuneService 인 경우 beanId를 RESTFortuneService 그대로 인식한다. 

 

 

 

 

1. Qualifier for filed injection

함수를 사용할 때 배열에서 무작위로 문장을 뽑는다.

RandomFortuneService 클래스를 필드에 둔다. 

함수를 사용할 때 필드의 메소드를 실행한다.


2. Qualifier for constructor injection

위 방법은 field Injection이고

Constructor Injection은  다음과 같이 사용한다.

 

 

 


3. Qualifier for properties file

Annotation을 이용하여 properties 파일에 있는 값을 가져오는 방법

 

src/sport.properties 파일을 만들어준다. 

xml 파일에 위와 같은 내용을 추가한다.