Spring & Boot

컴포넌트스캔 @Autowired

린예라 2024. 3. 30. 21:26

이 글에서는 자동으로 스프링에 빈 객체를 등록하고 의존성을 주입하는 방법을 알아보자.

 

스프링부트의 일반적 MVC 패턴에 따르면 다음과 같은 구성이 일반적이다.

각 컨트롤러와 서비스, 레포지토리를 서로 연결 해줘야 하는데 이때 사용할 수 있는 방법중에 하나가 컴포넌트 스캔과 @Autowired 이다.

 

자바 스프링이 기동할 때를 보면 다음과 같다

1.@Component 어노테이션이 붙어있거나 들어가 있는(@Service, @Controller 등)  것들을 모두 찾는다.

2.해당 클래스의 객체를 생성한다.

3.생성된 객체(스프링에서는 Bean이라고 한다.)들을 스프링컨테이너에 등록한다.

4.등록된 객체들에서 @Autowired 들을 찾아서 의존성을 주입해준다.

@Component를 찾는다고 해서 컴포넌트 스캔이라고 한다

 

스프링이 각각의 로직의 @Autowired가 붙어있는 것들을 연결해준다.(다른말로 의존성을 주입해준다.)

이것을 컴포넌트 스캔을과 의존성 자동 주입이라고 한다.

 

스프링에서 컨테이너 안에서 @Autowired를 찾아서 자동으로 의존성을 주입해준다

 

마지막으로 중요한것은 @Autowired로 연결되는 객체들은 모두 스프링 컨테이너에 올라와 있어야 한다.

 

이렇게 자동으로 처리해주는 방법 말고 수동으로 처리하는 방법도 있다.

다음은 @Configuration @Bean 을 활용한 수동 등록 및 의존성 주입에 대한 포스팅 링크이다.

https://linyerawork.tistory.com/66