@ 사인 하나로 많은 컨텍스트들을 제공 받을 수 있게 한다.
@ 사인으로 시작하는 것을 어노테이션 이라고 한다.
어노테이션이 나오기 전에는 xml로 많은 컨텍스트들이 관리 되었는데, 요즘은 어노테이션을 사용함으로써, Spring Framework에서 제공하는 많은 컨텍스트들을 활용 할 수 있다.
속성(field), setter method, constructor(생성자)에서 사용한다. 무조건적인 객체에 대한 의존성을 주입시킨다. 이 어노테이션을 사용할 시, 스프링이 자동적으로 값을 할당한다. Controller 클래스에서 DAO나 Service에 관한 객체들을 주입 시킬 때 많이 사용한다.
@Resource : 객체참조변수 이름으로 Bean을 지정한다.(필드/메서드에만 적용 가능)
Autowired 어노테이션과 비슷한 역할을 한다. 더욱 스탠다드한 어노테이션이라고 만 알고있다. Autowired는 스프링 에서만 쓰이는 어노테이션인듯 한다.
Required 어노테이션을 사용하여 optional 하지 않은, 꼭 필요한 속성들을 정의한다. Controller 클래스의 메서드에서, requestBody로 가져올 만한 것들이나, PathVariable로 가져올만한 꼭 필요한 값 들에 쓰일 수 있을것 같다…
Spring의 Controller를 의미한다. Spring MVC에서 Controller클래스에 쓰인다.
Spring에서 Controller 중 View로 응답하지 않는, 컨트롤러를 의미한다.
이 어노테이션이 적혀있는 컨트롤러의 메서드는 HttpResponse로 바로 응답이 가능하다.
@ResponseBody 역할을 자동적으로 해주는 어노테션이다.
Spring의 컨트롤러 혹은 그 메서드의 URI를 정의하는데 쓰인다.
요청을 받는 형식인 GET, POST, PATCH, PUT, DELETE 를 정의하기도 한다.
요청 받는 형식을 정의하지 않는다면, 자동적으로 GET으로 설정된다.
URI에서 / 다음으로 넘어오는 값들을 파싱하는 어노테이션이다.
POST나 PUT, PATCH로 요청을 받을때에, 요청에서 넘어온 body 값들을 자바 타입으로 파싱해준다.
?moviename=thepurge 와 같은 쿼리 파라미터를 파싱해준다.
HttpMessageConverter 를 이용하여 JSON 혹은 xml 로 요청에 응답할수 있게 해주는 어노테이션이다. 이미 RestController 어노테이션이 붙어 있다면, 쓸 필요가 없다. 허나 그렇지 않은 단순 컨트롤러라면, HttpResponse로 응답 할수 있게 해준다.
Service Class 에서 쓰인다. 비즈니스 로직을 수행하는 클래스라는 것을 나타내는 용도이다.
DAO class 에서 쓰인다. 데이터베이스에 접근하는 메서드를 가지고 있는 클래스에서 쓰인다고 볼 수 있다.
@Bean 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 등록할경우