Skip to content

컴포넌트 스캔과 의존관계 자동 주입 시작하기 #26

@mingsound21

Description

@mingsound21

이전과 달라진 점

이전까지는 AppConfig라는 클래스에서 직접 @bean 애노테이션을 사용해서 일일이 빈으로 직접 등록해줬다.
하지만, 만약 등록해야할 빈이 많다면, 이런 식으로 하다가는 빠트릴 수도 있고, 실수가 생길여지가 너무 많다.

따라서! 이제는 @componentscan을 사용해서 @component 애노테이션이 붙은 클래스를 모두 찾아서 자동으로 빈으로 등록해준다.

그렇다면, 이전까지는 AppConfig에서 직접 어떤 구현체를 사용할 지 생성자의 인자로 직접 작성해서 넘겨줬다면, 이제는 어떻게 의존관계를 설정해줘야할까? 우리가 새로이 만든 AutoAppConfig에는 아무것도 작성되어있지 않다.

방법은 각각의 빈의 생성자위에 @Autowired라는 애노테이션을 사용해서 빈으로 등록된 것중 생성자의 파라미터 클래스 타입과 같은 것을 찾아서 자동으로 주입해준다.

Test를 작성해, 진짜 @componentscan을 사용했을 때, @component로 빈이 자동 등록 되는지, 또한 @Autowired로 의존관계 주입이 되었는지 살펴 보았다.

로그를 보면 알 수 있었다.
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions