> For the complete documentation index, see [llms.txt](https://jinwon-yoon.gitbook.io/jinonys-blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jinwon-yoon.gitbook.io/jinonys-blog/daily-log/2022.12.09.md).

# 2022.12.09

## 할일 및 한일&#x20;

* [ ] 자료구조 8장 마무리&#x20;
* [x] 스프링 강의 수강 및 정리&#x20;

## 경험 및 배움&#x20;

오늘은 저녁에 예정된 약속이 있어서 예정된 공부를 마치지 못했다.

### 스프링 강의 수강 및 정리&#x20;

`@Autowired` 는 타입으로 빈을 조회한다고 한다. 따라서 선택된 빈이 2개 이상이 있을 때, 문제가 발생한다.

`NoUniqueBeanDefinitionException` 오류가 발생한다. 따라서 이 문제를 해결하기 위한 방법은 3가지가 존재한다.

{% hint style="info" %}

1. **`@Autowired` 필드명 매칭**
2. **`@Qualifier`**&#x20;
3. **`@Primary`**
   {% endhint %}

`@Autowired` 필드명 매칭 방법은 필드 명을 빈 이름으로 변경해서 스프링에게 우선으로 사용할 빈을 알려주는 방법이다.

두 번째인 `@Qualifier` 방법은 빈을 등록할 때 `@Qualifier` 어노테이션을 붙여주고, 구분할 이름을 따로 하나 더 지정해주는 것이다. 그 후에 사용할 생성자에 가서 어노테이션과 함께 사용할 구분자인 이름을 써준다.

세 번째는 `@Primary` 로 내가 우선적으로 사용할 빈이 있는 클래스에 이 어노테이션을 붙여서, 우선권을 주는 것이다.

-> `@Qualifier` 의 단점은 주입 받을 때 모든 코드에 `@Qualifier` 를 붙여주어야 한다는 점이있으므로 `@Primary` 를 사용하는 것이 편리하다고 한다.

자세한 내용은 다음 링크에 정리해놓았다.

{% embed url="<https://jinwonyoon.notion.site/8a413f67c3eb4bcfa65e0c47550b7ab7>" %}

## 개선 및 목표&#x20;

* 내일은 자료구조 마무리 및 자바 프로젝트를 시작해보자.&#x20;
