[스프링 핵심 원리]-5

EarlyBird·2021년 10월 31일
0

스프링 핵심 원리

목록 보기
5/6
post-thumbnail

김영한님의 스프링 핵심 원리 강의 학습 내용입니다.

컴포넌트 스캔과 의존관계 자동 주입

@Configuration 
@ComponentScan(basePackages = "com.example.corestudy.member", basePackageClasses = AutoAppConfig.class,)
public class AutoAppConfig {
}
  • @Configuration : @Component를 포함하고 있다.
  • @ComponentScan : Component가 붙은 클래스를 스캔해 스프링 빈으로 등록
  • @Autowired : 생성자에 붙여 의존관계를 자동 주입
  • basePackages : 탐색할 패키지 시작 위치 지정, 이 패키지를 포함한 하위 패키지 모두 탐색
  • basePackageClasses : 지정 클래스의 패키지를 탐색 시작 위치로 지정
  • 권장 방법 : 설정 정보 클래스 위치를 프로젝트 최상단에 두기

ComponentScan 기본 대상

  • @Component
  • @Controller : 스프링 MVC 컨트롤러
  • @Service : 스프링 비즈니스 로직
  • @Repository : 스프링 데이터 접근 계층
  • @Configuration : 스프링 설정 정보, 스프링 빈 싱글톤 유지

필터

  • includeFilter : 컴포넌트 스캔 대상 추가
  • excludeFilter : 컴포넌트 스캔 대상 제외

의존관계 주입 방법

  • 생성자 주입 - 불변, 필수
  • 수정자 주입 - 선택, 변경
  • 필드 주입
  • 일반 메서드 주입

옵션처리

  • @Autowired(required = false)
  • @Nullable
  • Optional<>

조회 대상 빈이 2개 이상일 때

  • @Autowired 필드 명, 파라미터 명 매칭
  • @Quilifier 끼리 매칭
  • @Primary - 우선순위 정하기

조회한 빈이 모두 필요할 때

  • Map
  • List
profile
안되면 되게 합시다

0개의 댓글

관련 채용 정보