✅ Cat.java
- 변수 두 개를 작성한다.
- 생성자, getter/setter, toString() 작성한다.
✅ Person.java
- 변수 두개를 작성한다.
- 다 작성해도 상관없지만 필요한 username의 set만 작성한다.
- cat은 Autowired로 주입할 것이기 때문에 그대로 둔다.
✅ user.xml
- 어노테이션을 쓰기 위해 필요한 <context:annotation-config />를 작성해준다. (Namespaces에서 context도 체크)
- Cat 빈을 등록한다.
- Person 빈을 등록한다.
결과
💻 NoUniqueBeanDefinitionException
타입(type)으로 찾아서 주입하기 때문에 만약 동일한 타입이 여러 개인 경우에 발생한다.
👇👇👇
💡 해결 1
@Autowired
@Qualifier(value="주입받고싶은id값")
타입이 여러개이기때문에 빈의 이름(name, id)으로 자동으로 주입된다.
💡 해결 2
CoC (Convention over Configuration)
- 설정정보보다 뛰어넘은 관례로 처리하는 개념을 의미한다.
@Autowired
Cat cat; ⇒ xml에 cat과 일치하는 id를 가진 빈으로 주입이 된다.
<bean id=”cat”>
<bean id=”cat1”>
'Framework > SPRING FRAMEWORK' 카테고리의 다른 글
@Resource (0) | 2023.08.30 |
---|---|
@Autowired - NoSuchBeanDefinitionException (0) | 2023.08.30 |
@Autowired (0) | 2023.08.30 |
어노테이션+최소한의 XML Configuration Metadata 설정방법 (0) | 2023.08.30 |
Bean Scope (0) | 2023.08.29 |