Annotation 은 클래스와 메서드에 추가하여 다양한 기능할 사용할수 있게하는 역할을 한다
어노테이션을 활용하면 Spring Framework의 해당 클래스가 어떤 역할인지 정하고
Bean을 주입하기도 하며 자동으로 getter나 setter를 생성하기도 한다.
이러한 어노테이션을 통하여 코드량이 감소하고 유지보수가 귀워지며 생산성이 증가된다
Spring 의 대표적인(자주사용하는) Annotaion
Component
개발자가 생성한 Class를 Spring Bean으로 등록할 때 사용하는 Annotaion이다 스프링은 해당 어노테이션을 보고
스프링의 빈으로 등록한다
Bean
@Bean 어노테이션은 개발자가 제어할수 없는 외부 라이브러리같은 것들을 Bean으로 만들 때 사용한다.
Controller
스프링에게 해당 클래스가 콘트롤러의 역할을 한다고 명시하기 위해서 사용한다
RequestMapping
@REquestMapping(value ="") 와 같은 형태로 작성하며, 요청이 들어온 URI의 요청과 Annotaion value값이
일치하면 해당 클래스나 메서드가 실행된다.
Controller 객체 안의 메서드와 클래스에 적용이 가능하며 다음과 같이 사용이 가능하다
- Class 단위에 사용하면 하위 메서드에 모두 적용된다
- 메서드에 적용되면 해당 메서드에 지정하면 지정한 방식으로 URl을 처리한다.
RequestParam
-URL에 전달되는 파라미터를 메서드의 인자와 매칭시켜서 파라미터를 받아 처리 할수있는데 어노테이션이다
- JSON형식의 바디를 MessageConverter를 통해 JAVA객체로 변환시킨다
RequestBody
-body에 전달되는 데이터를 메서드의 인자와 매칭시켜서 데이터를 받아 처리할수 있는 어노테이션이다
- 클라이언트가 보내는 http요청 본문 JSON,XML을 java 오브젝트로 변환한다.
- 클라이언트가 바디에 제이슨 또는 xml같은 형태로 주로 객체를 전송하면 해당 내용을 java Object로 변환한다
ModelAttribute
- 클라이언트가 전송하는 HTTP parameter, Body 내용을 setter함수를 통해서 1대1 객체에 데이터를 연결한다
- RequestBody와 다르게 HTTP Body 내용은 multipart/form-data형태를 요구한다
- @RequestBody가 JSON을 받는것과 달리 @ModelAttribute의 경우에는 json을 받아서 처리할수 있다
ResponseBody
- @ResponseBody는 메서드에서 리턴되는 값이 View로 출력되지 않고 HTTP Response Body에 직접 쓰여진다
- return시에 json. xml과 같은 데이터를 리턴한다.
Autowired
- 스프링 프레임워크에서 Bean 객체를 주입받기 위하여 @Autowired를 사용한다.
- 스프링 프레임워크가 Class를 보고 Type에 맞게 Bean을 주입한다
GetMapping
RequestMapping(Method=RequestMethod.GET)과 똑같은 역할을 한다.
PostMapping
ReuqestMapping(Method=RequestMethod.POST)와 똑같은 역할을 한다.
'JAVA' 카테고리의 다른 글
DTO 와 VO (0) | 2024.05.04 |
---|---|
웹 MVC (0) | 2024.05.04 |
httpServletRequest 주요기능 (0) | 2024.05.02 |
JAVA 파일 스트림 (0) | 2024.05.02 |
비동기 처리와 Axios (1) | 2024.05.02 |
댓글