Print
카테고리: [ Development ]
조회수: 2250

1. 어노테이션이란

클래스나 메소드 상단에 필요한 정보를 설정하여 스프링 컨테이너 기동 시 해당 정보를 활용함

 


2. 어노테이션 종류

@Autowired

필드, setter 메소드, 생성자에서 사용한다. 객체에 대한 의존성을 주입한다. 이 어노테이션을 사용하면 스프링이 자동으로 값을 할당한다.

다시 설명한다. 스프링이 빈의 요구 사항과 매칭되는 Application Context 상에서 다른 빈을 찾아 빈 간의 의존성을 자동으로 만족시키도록 하는 수단이다. 

@Autowired시 주입할 의존 객체가 있어야 하는데 만약 의존 객체가 없다면 Exception이 발생한다. 이 때는 requied를 통해 필수 여부를 지정할 수 있다.

@Autowired가 아닌 @Resource를 사용할 수도 있는데 @Autowired(org.springframework.beans.factory.annotation.Autowired)는 스프링 자체 어노테이션이고 @Resource(javax.annotation.Resource)는 자바 표준 어노테이션이다. 

@Bean

Bean 생성을 하는 메소드에 붙인다. 메소드 이름이 아이디이다.

@Component

Contoller, Service, Repository를 포함하고 있다.

@Controller

스프링 MVC의 기본이 되는 어노테이션이다. 사용자에게 ViewResolver를 통한 text/html 형식의 뷰 페이지 노출을 위해 뷰 이름을 리턴한다. 

@PathVariable

자세히 알아보자.

@Required

꼭 필요한 속성을 정의한다.

@Resource

필요한 자원을 자동으로 연결하기 위해 사용한다.

@RestController

RESTful 컨트롤러이다. Controller와 달리 뷰 페이지의 노출이 아니라 HTTP Response Body에 직접 쓰여진다. text/html인 Controller와 달리 MessageConverter를 통해 application/json, text/plain 등으로 리턴된다.

@PropertySource

Environment 객체에 Property 값이 주입된다.

@PropertySource("classpath:/my.properties")

@ Value