어노테이션이란?

·2024년 11월 4일

스프링

목록 보기
5/33

어노테이션

@ 사인 하나로 많은 컨텍스트들을 제공 받을 수 있게 한다.

@ 사인으로 시작하는 것을 어노테이션 이라고 한다.

어노테이션이 나오기 전에는 xml로 많은 컨텍스트들이 관리 되었는데, 요즘은 어노테이션을 사용함으로써, Spring Framework에서 제공하는 많은 컨텍스트들을 활용 할 수 있다.

①의존성 주입용도

@Autowired

속성(field), setter method, constructor(생성자)에서 사용한다. 무조건적인 객체에 대한 의존성을 주입시킨다. 이 어노테이션을 사용할 시, 스프링이 자동적으로 값을 할당한다. Controller 클래스에서 DAO나 Service에 관한 객체들을 주입 시킬 때 많이 사용한다.

@Resource : 객체참조변수 이름으로 Bean을 지정한다.(필드/메서드에만 적용 가능)

@Inject

Autowired 어노테이션과 비슷한 역할을 한다. 더욱 스탠다드한 어노테이션이라고 만 알고있다. Autowired는 스프링 에서만 쓰이는 어노테이션인듯 한다.

@Required

Required 어노테이션을 사용하여 optional 하지 않은, 꼭 필요한 속성들을 정의한다. Controller 클래스의 메서드에서, requestBody로 가져올 만한 것들이나, PathVariable로 가져올만한 꼭 필요한 값 들에 쓰일 수 있을것 같다…

②컨트롤러 용도

@Controller

Spring의 Controller를 의미한다. Spring MVC에서 Controller클래스에 쓰인다.

@RestController

Spring에서 Controller 중 View로 응답하지 않는, 컨트롤러를 의미한다.

이 어노테이션이 적혀있는 컨트롤러의 메서드는 HttpResponse로 바로 응답이 가능하다.

@ResponseBody 역할을 자동적으로 해주는 어노테션이다.

@RequestMapping

Spring의 컨트롤러 혹은 그 메서드의 URI를 정의하는데 쓰인다.

요청을 받는 형식인 GET, POST, PATCH, PUT, DELETE 를 정의하기도 한다.

요청 받는 형식을 정의하지 않는다면, 자동적으로 GET으로 설정된다.

@PathVariable

URI에서 / 다음으로 넘어오는 값들을 파싱하는 어노테이션이다.

@RequestBody

POST나 PUT, PATCH로 요청을 받을때에, 요청에서 넘어온 body 값들을 자바 타입으로 파싱해준다.

@RequestParam

?moviename=thepurge 와 같은 쿼리 파라미터를 파싱해준다.

@ResponseBody

HttpMessageConverter 를 이용하여 JSON 혹은 xml 로 요청에 응답할수 있게 해주는 어노테이션이다. 이미 RestController 어노테이션이 붙어 있다면, 쓸 필요가 없다. 허나 그렇지 않은 단순 컨트롤러라면, HttpResponse로 응답 할수 있게 해준다.

③데이터 용도

@Service

Service Class 에서 쓰인다. 비즈니스 로직을 수행하는 클래스라는 것을 나타내는 용도이다.

@Repository

DAO class 에서 쓰인다. 데이터베이스에 접근하는 메서드를 가지고 있는 클래스에서 쓰인다고 볼 수 있다.

@Controller @Service @Repository는 모두 @Component 상속됨

@Bean 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 등록할경우

0개의 댓글