컴포넌트 스캔과 자동 의존 관계 설정
- DI(Dependency Injection)
- 의존성 주입, 객체 의존 관계를 외부에서 넣어주는 것
- 필드 주입, setter주입, 생성자 주입 3가지 방법이 있음
생성자에 @Autowired
가 있으면 객체 생성 시점에 스프링 컨테이너에서 해당 스프링 빈(빈으로 등록되어 있어야 함)을 찾아서 넣어준다.
생성자가 1개만 있으면 생략 가능
스프링 빈 등록 방법 2가지
컴포넌트 스캔
@Component
어노테이션이 있으면 스프링 빈으로 자동 등록
annotation-based configuration, classpath scanning 사용 시 auto-detect 대상이 됨
@Component
를 포함하는 아래 어노테이션도 가능@Controller
- 어노테이션이 붙은 클래스가 controller임을 나타냄 (e.g. web controller)@Service
- 어노테이션이 붙은 클래스가 service임을 나타냄@Repository
- 어노테이션이 붙은 클래스가 repository임을 나타냄
스프링은 컨테이너에 스프링 빈을 등록할 때, 기본으로 싱글톤으로 등록한다.(하나만 등록해서 공유)
같은 스프링 빈 = 같은 인스턴스
자바 코드로 직접 빈 등록
e.g.
@Configuration
public class SpringConfig {
@Bean
public MemberRepository memberRepository() {
return new MemberRepository();
}
}
XML로 설정하는 방법도 있다고 함
'Spring > 스프링 입문' 카테고리의 다른 글
일반적인 웹 애플리케이션 계층 구조 (0) | 2022.10.03 |
---|---|
스프링 컨테이너와 서블릿 (0) | 2022.09.30 |