728x90
컴포넌트 스캔과 자동 의존관계 설정
- 생성자에 @Autowired 가있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서넣어준다. 이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI (Dependency Injection), 의존성 주입 이라고 한다.
* 컴포넌트스캔 원리
- @Component 애노테이션이 있으면 스프링 빈으로 자동 등록된다.
- @Controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트스캔 때문이다.
-> 컨트롤러에 들어가서 보면 @Component 애노테이션이 있는 것을 확인할 수 있다.
- @Component 를포함하는다음 애노테이션도스프링 빈으로 자동등록된다.
1) @Controller
2) @Service
3) @Repository
자바 코드로 직접 스프링 빈 등록하기
- SpringConfig 클래스를 따로 하나 만들고, 이 클래스에서 빈(Bean)을 설정하고 관리하는 역할을 한다.
- @Configuration 애노테이션은 해당 클래스가 스프링의 설정 클래스임 나타낸다.
- @Bean 애노테이션은 메소드가 스프링 빈을 생성하고 반환하는 메소드임을 나타냅니다. 이 메소드들은 스프링 컨테이너에 의해 호출되어 해당 빈을 관리합니다.
- 실무에서는주로 정형화된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트스캔을 사용한다. 그리고 정형화 되지 않거나, 상황에 따라 구현클래스를 변경해야 하면 위와 같이 설정을 통해 스프링 빈으로 등록한다.
'Spring' 카테고리의 다른 글
스프링부트 jpa 라이브러리 추가 및 연결(인텔리제이) (0) | 2023.11.29 |
---|---|
스프링부트 인텔리제이 gradle 오류해결 (0) | 2023.11.29 |
테스트코드 (0) | 2023.11.21 |
스프링부트 @ResponseBody (1) | 2023.11.21 |
스프링부트 인텔리제이 빌드 오류해결 (0) | 2023.11.21 |