✅ 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
xoo | 수진