컴포넌트 자동등록(어노테이션)

CHM·2022년 6월 9일
0

Spring

목록 보기
9/26

@Component

  • @Component와 하위 어노테이션을 사용
  • 하위 어노테이션(계층화 아키텍쳐 기반)
    • @Controller : 프레젠테이션 영역
    • @Service : 비지니스 영역
    • @Repository : 데이터 영역

Component-scan

  • Bean이 될 수 있는 모든 Component들을 자동으로 찾아 Bean Container에 등록

  • 단, 의존성 관계 등록은 따로 하지 않음

  • 빈 설정 파일에서 다음을 수정해야 한다.

    1. 하단 Namespaces에 들어가 context를 체크
    2. 기존에 bean 태그를 작성했다면 지워준다.
    3. 만약 @Service, @Repository 어노테이션을 사용했을 때 다음 코드 작성
      • base-package : 적혀있는 패키지의 하위 패키지들을 검색해 로딩시켜줌
    <context:component-scan base-package="kr.co.acomp.hello"/>
    1. 클래스 내에서 의존 관계 주입을 원하는 빈 위에 @Autowired를 작성. 이것이 있으면 생성자주입, 수정자주입 코드도 필요 없다.
    @Service
    public class BbsService {
    
        @Autowired
        private ArticleDAO articleDAO;
    
        // 수정자 주입 코드 => 필요 없음!!
        // public void setArticleDAO(ArticleDAO dao) {
        //      this.articleDAO = dao;
        // }
        
        ...
    }

@Autowired

  • Component 간의 의존관계는 @Autowired라는 어노테이션으로 적용
  • Component-scan과 수동으로 생성된 DI(생성자, 수정자 주입)는 혼용해서 사용 가능

0개의 댓글