시작은 언제라도

Spring Annotation 본문

Web programming/Spring

Spring Annotation

row_a_boat 2021. 6. 1. 11:04

Annotation : 의미있는 주석 -> Annotation은 컴파일과 런타임시에 영향을 주는 의미있는 주석이다.

  Spring Annotation -> 설정정보의 역할

  Spring configuration (스프링 설정) -> XML + Annotation + Java Config + properties  

   

   Spring Annotation 종류

   @Component 컴포넌트 계열 어노테이션 -> 스프링 컨테이너에서 해당 클래스 객체를 생성하도록 명시

   --> 컴포넌트 계열 어노테이션은 다음과 같다

   @Repository : 영속성 계층에서 사용 (ex_ MemberDAOImpl)

   @Service : 비지니스 계층 (or 서비스 계층) 에서 사용 (ex - MemberServiceImpl)

   @Controller : 프레젠테이션 계층 (or 컨트롤러 영역)에서 사용  (ex_ MemberController)

   

   DI (dependency injection) 계열 어노테이션 ->  생성한 객체를 주입함

   --> 스프링 컨테이너 로부터 의존성 주입 (필요로하는 객체) 받고자 할 때 사용.

   @AutoWired : 의존 대상객체를 타입으로 검색해서 주입

   -> 동일한 인터페이스의 구현 객체가 여러개일 경우 exception 발생

   --> @Qualifier( bean id="")로 해결

   @Resource : 의존 대상객체를 타입으로 검색해 주입 ( 여기에 spring container에서 DI 할 것을 명시한다 )

   @Resource(name = "bean id") 을 명시하면 bean id 로 검색해 주입 ,  (AutoWired + Qualifier)   

 

   spring-config.xml에서 IOC , DI , DL에 대한 설정. -> spring contaier에 적용됨.

   <context : component-scan base-package="org.kosta"> 한줄이면 된다.

     ----> 기존의 xml에서 관리하는 객체 생성 권한을 annotation으로 할 수 있도록 해준다.

 

   위 설정은 org.kosta 팩키지 및 하위 팩키지의 component 계열 어노테이션 명시된 클래스를 탐색해서 bean (객체) 생성하고 

   DI계열 어노테이션 명시된 대상에 대해 DI 처리한다. 

   만약 별도의 모듈이 있다면 , 로 추가 명시해준다.   <context : component-scan base-package="org.kosta, aop.common">

   

'Web programming > Spring' 카테고리의 다른 글

MyBatis Framework  (1) 2021.06.19
spring framework 용어 정리  (0) 2021.06.07
Settings  (0) 2021.06.01
Logging  (0) 2021.05.29
IOC / DI  (1) 2021.05.17