이 글에서는 자동으로 스프링에 빈 객체를 등록하고 의존성을 주입하는 방법을 알아보자.
스프링부트의 일반적 MVC 패턴에 따르면 다음과 같은 구성이 일반적이다.
각 컨트롤러와 서비스, 레포지토리를 서로 연결 해줘야 하는데 이때 사용할 수 있는 방법중에 하나가 컴포넌트 스캔과 @Autowired 이다.
자바 스프링이 기동할 때를 보면 다음과 같다
1.@Component 어노테이션이 붙어있거나 들어가 있는(@Service, @Controller 등) 것들을 모두 찾는다.
2.해당 클래스의 객체를 생성한다.
3.생성된 객체(스프링에서는 Bean이라고 한다.)들을 스프링컨테이너에 등록한다.
4.등록된 객체들에서 @Autowired 들을 찾아서 의존성을 주입해준다.
스프링이 각각의 로직의 @Autowired가 붙어있는 것들을 연결해준다.(다른말로 의존성을 주입해준다.)
이것을 컴포넌트 스캔을과 의존성 자동 주입이라고 한다.
마지막으로 중요한것은 @Autowired로 연결되는 객체들은 모두 스프링 컨테이너에 올라와 있어야 한다.
이렇게 자동으로 처리해주는 방법 말고 수동으로 처리하는 방법도 있다.
다음은 @Configuration @Bean 을 활용한 수동 등록 및 의존성 주입에 대한 포스팅 링크이다.
'Spring & Boot' 카테고리의 다른 글
@PathVariable, @RequestParam (0) | 2024.04.20 |
---|---|
@Configuration @Bean 수동등록 (0) | 2024.03.31 |
스프링 부트 큰 그림 (0) | 2024.03.21 |
ORM 그리고 객체지향 (0) | 2023.09.10 |
의존성 주입 방법 3가지 - 필드 주입, 메소드 주입, 생성자 주입 (0) | 2023.09.02 |