@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 파일에 위와 같은 내용을 추가한다.
'컴퓨터공학 > Spring & Hibernate' 카테고리의 다른 글
Spring> Annotation> Java Configuration File (0) | 2021.04.14 |
---|---|
Spring> Annotation> Scope (0) | 2021.04.14 |
Spring> Annotation> Setter, Method, Field Injection (0) | 2021.04.13 |
Spring>Annotation> Constructor Injection (0) | 2021.04.12 |
Spring> Annotation> Default Component Name (0) | 2021.04.12 |