1.10.1 @Component 및 추가 스테레오 타입 어노테이션

스테레오 타입 어노테이션 이란?

클래스에 붙여서 해당 클래스가 컴포넌트 스캐닝의 대상고, 스프링에 의해서 관리 될 것임을 표시한다. 즉 <beans> XML 설정 파일에서 <bean>으로 선언한 것과 같은 효과를 낸다. : 자동 빈등록

@Conponent : 메타 어노테이션. 다른 모든 스프링 스테레오타입 어노테이션 및 커스텀 qualifier 어노테이션의 부모 어노테이션, 특정 타입을 정하기 힘든 계층 분류일 경우 사용

@Service : 상태없는 서비스 컨포넌트

@Repository : 저장소 컴포넌트(DAO등.)

@Aspect : AspectJ의 어스펙트.

@Controller : Spring MVC 컨트롤러.

@Repositoryannotation(또한 데이터 접근 개체 또는 DAO로 알려진) 저장소의 고정방식이나 역할을 충족하는 모든 클래스에 대한 marker입니다. 이 마커의 사용 중에는 Exception Translation에 설명 된 예외 자동 번역이 있습니다.

spring은 더 많은 스테레오 타입 주석을 제공합니다 @Component, @Service하고 @Controller. @Component는 Spring 관리 컴포넌트의 일반적인 스테레오 타입이다. @Repository, @Service@Controller@Component 구체적인 사용 사례 (지속성,서비스, 프리젠 테이션 레이어에 에 대한 각각)의 특수화이다. 따라서 @Component 로 구성 요소 클래스에 주석을 달 수 있지만 대신에 @Repository, @Service또는 @Controller 로 annotation 함으로써, 당신의 클래스가 더 적절 도구에 의해 처리에하거나 항목과 연결하는데 더 적합합니다.

예를 들어, 이러한 스테레오 타입 주석은 pointcuts를 위한 이상적인 타겟을 만듭니다. @Repository, @Service그리고 @Controller은 스프링 프레임 워크의 향후 릴리스에서 추가적인 의미를 전달할 수도있다. 따라서, 당신이@Component또는 @Service사이에서 선택을 고민한다면 귀하의 서비스 계층에 대해 @Service명확하게 더 나은 선택입니다. 마찬가지로 앞에서 설명한 것처럼 이제는 @Repository지속성 계층에서 자동 예외 변환의 표식으로 지원됩니다.

<AOP용어>

조인포인트(Joinpoint) : 클라이언트가 호출하는 모든 비즈니스 메소드, 조인포인트 중에서 포인트컷되기 때문에 포인트컷의 후보로 생각할 수 있다.

포인트컷(Pointcut) : 특정 조건에 의해 필터링된 조인포인트, 수많은 조인포인트 중에 특정 메소드에서만 횡단 공통기능을 수행시키기 위해서 사용한다.

  • 표현식 : 리턴타입 패키지경로 클래스명 메소드명(매개변수)

어드바이스(Advice) : 횡단 관심에 해당하는 공통 기능의 코드, 독립된 클래스의 메소드로 작성한다.

  • 어드바이스의 동작 시점

  • 동작시점

    설명

    Before

    메소드 실행 전에 동작

    After

    메소드 실행 후에 동작

    After-returning

    메소드가 정상적으로 실행된 후에 동작

    After-throwing

    예외가 발생한 후에 동작

    Around

    메소드 호출 이전, 이후, 예외발생 등 모든 시점에서 동작

위빙(Weaving) : 포인트컷으로 지정한 핵심 관심 메소드가 호출될 때, 어드바이스에 해당하는 횡단 관심 메소드가 삽입되는 과정을 의미한다. 이를 통해 비즈니스 메소드를 수정하지 않고도 횡단 관심에 해당하는 기능을 추가하거나 변경이 가능해진다.

애스팩트(Aspect) : 포인트컷과 어드바이스의 결합이다. 어떤 포인트컷 메소드에 대해 어떤 어드바이스 메소드를 실행할지 결정한다.

Last updated