WEB/Spring

Spring 총정리 3.Annotation

특징 ?

 

- Spring Web MVC Framework는 JAVA1.5부터 Annotation을 지원합니다.

- xml설정이 너무 길어짐에 따라 그 대안으로 나타났다.

- 기본적으로는 활성화되지 않기 때문에 xml에서 확성화 작업이 필요하다.

 

장점 ?

 

- 설정이 간편해 짐, view 페이지와 객체 또는 메서드의 맵핑이 명확해 짐.


Annotation을 사용하기 위해서는 설정이 필요합니다.

3가지 방법이 있습니다.

 

1) CommonAnnotationBeanPostProcessor에 클래스 설정파일에 빈객체로 등록하여 어노테이션으로 사용

2) <context:annotation-config/> 태그 사용 : 이미 등록된 빈들의 어노테이션을 활성화

3) <context:component-scan package="***"/> :

특정 패키지 안의 클래스들을 스캔하고, Annotation을 확인 후 bean 인스턴스를 생성

- 스테레오타입의 어노테이션을 자동으로 등록 한다 ( Spring Framework가 관리해 준다.)

 

 

기본 Annotation의 종류 

- org.springframework.stereotype

 

@Compoenet : @Controller,@Service,@Repository 의 최상위 annotation이다.

@Controller : Spring MVC에서 Controller를 인식 시켜준다.

@Service : Business 클래스에서 사용, 로직을 사용한다.

@Repository : 일반적 Data Access Object에서 사용, DB Exception을 DataAccessExceiption

 


1. @Component

패키지 : org.springframework.stereotype

버   전 : spring 2.5

직접 작성한 Class를 Bean으로 등록하기 위한 어노테이션.

 

2. @Autowired

패키지 : org.springframework.beans.factory.annotation

버   전 : spring2.5

Spring의 "의존관계"를 자동으로 설정할때 사용한다.

- 해당 타입의 bena이 존재 하지 않거나, 2개 이상일 경우 예외 발생 ( 해결방법 : @Qualifer사용 )

 


DI 주입 형태 3가지

1. Construcotr : 필요한 의존성을 모두 포함하는 클래스의 생성자를 만들고 그 생성자를 통해 의존성을 주입

(스프링 4.3버전 이후 권장)

2. Field :Bean으로 등록된 객체를 사용하고자 하는 클래스에 Field로 선언한 뒤 @Autowired키워드를 붙여주면 자동으로 주입된다.

3. Setter : 의존성을 입렫받는 setter 메서드를 만들고 이를 통해 의존성을 주입한다.


3. @Qualifer("name1")

@Autowired 했을 때 동일 타입을 가진 bean객체가 두개 있을 때 사용합니다.

예) 

private A obj

<bean id="obj1" class="a.b.c.A"><qualifier value="name1"></bean>

<bean id="obj2" class="a.b.c.A"></bean>

 

4. @Required

패키지 : org.springframework.beans.factory.annotation

버   전 : spring 2.5

필수값을 입력하고 싶을 때 사용한다.

bean을 만들어 낼때 필수로 입력해야 되는 메서드 앞에서 @Required라고 선언하게 되면

bean을 사용할 때 반드시 입력해야 한다.

 

5. @Repository

패키지 : org.springframework.stereotype

버   전 : spring2.5

DAO에 사용되고, DB Exception을 DataAccessException처리한다.

 

6. @Service

Business클래스에서(로직) 사용한다 

 

Controller -> Service -> Repository -> DataBase

   분기          DAO조합     기능          DataBase

 

7. @Resource

 

JAVA1.6 / JEE5 버전에 추가 되었다.

애플리케이션에서 필요로 하는 자원을 자동으로 연결 할때 사용,

name속성 사용해서 bean 객체 이름을 연결한다.

@Resource(name="TestDtoDao")

 

'WEB > Spring' 카테고리의 다른 글

Spring boot에서 JSP 사용하기  (0) 2021.01.25
Mapper Interface?  (0) 2020.07.23
Spring 총정리 2.Spring 3대 작동원리  (0) 2020.06.06
Spring 총정리 1.Spring에 기반이 되는 Servlet  (0) 2020.06.06
이미지 업로드 (Spring+Ajax)  (1) 2020.05.16