헬린코린이
[Spring Framework] 스프링 어노테이션 정리 본문
@Component
개발자가 생성한 Class를 Spring의 Bean으로 등록할 때 사용하는 어노테이션
@ComponentScan
@Component, @Service, @Repository, @Controller, @configuration 중 1개라도 등록된 클래스를 찾으면 Context에 bean 으로 등록해줌니다.
@Bean
개발자가 제어가 불가능한 외부 라이브러리와 같은 것들은 Bean으로 만들 때 사용합니다.
@Controller
Spring에게 해당 Class가 Controller의 역할을 한다고 명시하기 위해 사용하는 어노테이션
@Service
비지니스 로직이 들어가는 Service로 사용되는 클래스임을 명시하는 어노테이션
@Repository
DB연동 작업을 하는 클래스인 DAO에 특화된 어노테이션
@RequestHader(value=””)
Request의 header값을 가져올 수 있으며, 해당 Annotation을 쓴 메소드의 파라미터에 사용합니다.
@RequestMapping(value=”” RequestMethod.POST,GET)
와 같은 형태로 작성하며, 요청 들어온 URL의 요청과 어노테이션 value 값이 일치하면 해당 클래스나 메서드가 실행됩니다. Controller 객체 안의 메서드와 클래스에 적용 가능하다
@RequestParam
URL에 절달되는 파라미터를 메서드의 인자와 매칭시켜 파라미터를 받아서 처리할 수 있는 Annotation으로 아래와 같이 사용합니다.
@RestController(Spring RestFul Controller)
(@Controller + @ResponseBody)결합 형태의 어노테이션으로,
용도는 해당 클래스가 ajax 요청을 받아 Json/Xml형태로 객체 데이터를 반환하는 것이다.
(별) 기존 MVC @Controller와의 차이점은 HTTP Response Body가 생성되는 방식의 차이이다.
@ResponseBody
메소드에서 리턴되는 값이 View 로 출력되지 않고 HTTP Response Body에 직접 쓰여지게 됩니다. return 시에 json, xml과 같은 데이터를 return 합니다
@RequestBody
Body에 전달되는 데이터를 메소드의 인자와 매칭시켜, 데이터를 받아서 처리할 수 있는 Annotation으로 아래와 같이 사용합니다.
@Autowired
Bean 객체를 주입받기 위한 방법은 크게 필드,세터,생성자가 있습니다. (Type을 먼저 확인 후 없으면 Name을 확인)Bean을 주입합니다.
@GetMapping
== RequestMappgin(Method=RequestMethod.GET)과 똑같은 역할을 하며, 아래와 같이 사용합니다.
@ PostMapping
== RequestMapping(Method=RequestMethod.POST)과 똑같은 역할 하며, 아래와 같이 사용합니다.
Lombok의 대표적인 Annotation과 역할
@Setter
Class 모든 필드의 Setter method를 생성해줍니다.
@Getter
Class 모든 필드의 Getter method를 생성해줍니다.
@AllArgsConstructor
Class 모든 필드 값을 파라미터로 받는 생성자를 추가합니다.
@NoArgsConstructor
Class 기본 생성자를 자동으로 추가해줍니다.
@ToString
Class 모든 필드의 toString method를 생성한다.