개발/Spring
[Spring]@ComponentScan
흰아리
2022. 3. 12. 01:11
스프링 프로젝트를 구축함에 있어, @Bean을 통해 스프링 빈을 생성할 수 있었지만, 만약 프로젝트 규모가 커진다면 매번 생성해야 할 빈을 생성하는 부분에 모두 @Bean 어노테이션을 지정해주어야 하는 번거로움이 있다.
스프링에서는 이러한 문제를 해결하기 위해 @ComponentScan 어노테이션이 존재한다.
설정클래스에 @ComponentScan 을 붙여주고
빈을 생성할 클래스에서 @Component 어노테이션을 붙여주면 된다.
그리고 클래스 생성자에 의존관계를 통해 주입을 받아야 하는 경우 @Autowired 어노테이션을 지정하면 된다.
컴포넌트 스캔의 기본 대상은 아래와 같다.
@Component : 컴포넌트
@Controller : 스프링 MVC에서 컨트롤러로 사용
@Service : 서비스 계층임을 표기해주는 역할(비즈니스 로직)
@Repository : 스프링의 데이터 접근 계층에서 사용
@Configuration : 스프링 설정 정보로 인식, 싱글톤을 유지하도록 도와줌