TIL)23.06.16(Spring 개인과제)

주민·2023년 6월 16일
0

TIL

목록 보기
20/84

어제 TIL 에서 DTO나 Request ,Reponse 내용을 물어보던 중 애너테이션(Annotation) 내용이 헷갈려서 예제에 있는 부분 보면서 정리를 했다.

기본정보(필드값) 있는 클래스

  • @Getter
    -> 해당 클래스에 있는 필드의 get을 자동으로 만들어 줌
  • @Setter
    -> 해당 클래스에 있는 필드의 set을 자동으로 만들어 줌

api, 메서드가 들어가는 클래스

클래스 구분(=> 클래스 위에 씀)

  • @Controller
    -> 해당 클래스가 Controller의 역할을 수행할 수 있도록 등록해줄 줄 수 있음
  • @RestController
    -> @Controller + @ResponseBody
    -> 해당 클래스의 모든 메서드에 @ResponseBody 애너테이션이 추가되는 효과를 부여할 수 있습니다.

API 구분(=> 클래스 안 API 위에 씀)

  • @RequestMapping("/user")
    -> api 주소 중복값 고정

** HTTP Method에 매핑되는 에너테이션(아래 4개)

  • @GetMapping
    -> get : 데이터 가져오기
  • @PostMapping
    -> post : 데이터 올림
  • @PutMapping
    -> put : 데이터 수정
  • @DeleteMapping
    -> delete : 데이터 삭제

API 내 사용

  • @ResponseBody
    -> 자바 객체 → JSON 으로 변환
    -> Get API의 String return 값을 HTML 파일이 아니라 텍스트로 할 수 있게 해줌

매개변수 내 사용(API 내부 메서드의 매개변수)

★ @PathVariable , @RequestParam 둘다 client에서 정보를 바로 받아오는 것은 동일하나 @RequestParam은 URL에 표시됨

  • @PathVariable
    -> Client -> 서버 요청을 보낼때 데이터를 같이 보낼 수 있음
    -> ex) @PathVariable String name, @PathVariable int age
  • @RequestParam
    -> 서버에 보내려는 데이터를 URL 경로 마지막에 ? 와 & 를 사용하여 추가할 수 있음
    -> URL에 자동으로 정보가 추가됨 >> ?name=Robbie&age=95
    -> ex) @RequestParam String name, @RequestParam int age

★ 기존에 return 값을 String으로 줬다면 아래 2개는 class로 줘서 객체를 받아옴

  • @ModelAttribute
    -> @RequestParam 는 컬럼값이 여러개인 경우 코드가 너무 길어지는데 ModelAttribute는 java에 객체로 받아올 수 있음
    -> URL에 정보가 담긴다.
    -> ex) @ModelAttribute Star star => star.name
  • @RequestBody
    -> HTML boby에 JSON 데이터를 java 객체로 전달
    -> URL 데이터가 나타나지 않음
    -> @RequestBody Star star => star.name

0개의 댓글

관련 채용 정보