spring boot 어노테이션 학습

박성현·2025년 5월 28일

개발중 학습

목록 보기
1/43

@RestController란 ?

  • @Controller + @ResponseBody 를 합친 것
  • 리턴 값이 뷰 이름이 아닌, HTTP 응답 본문(Response Body) 으로 바로 반환됨

@contoller란 ?

  • 리턴 값이 view로 반환됨
  • @contoller에서 body값을 받으려면 받으려는 메서드에 @ResponseBody를 추가 해줘야함

@RequestMapping란?

항목@RequestMapping@PostMapping
사용 가능 HTTP 메서드모든 HTTP 메서드 (GET, POST, PUT 등)POST 만 가능
설정 방식method 속성으로 지정간결하게 POST 지정
주 용도다목적 매핑 (GET/POST/PUT 등 복수 매핑에 유리)POST 요청 전용 처리
  • @RequestMapping내에 method를 지정해주는 것과 지정해주지 않는것에 대한 차이
어노테이션 사용 방식HTTP 메서드 지정어떤 요청 처리?
@RequestMapping(value="/gardeningOne")기본값: 모든 메서드 (GET, POST 등)모든 HTTP 요청 (GET/POST 등 모두 처리됨)
@RequestMapping(value="/gardeningOne", method=RequestMethod.POST)명시적으로 POST만 지정POST 요청만 처리

@PathVariable란?

  • @PathVariable은 URL 경로의 일부 값을 변수로 추출할 때 사용함
    ex)
@GetMapping("/file/{wsFileName}")
public String getFile(@PathVariable("wsFileName") String wsFileName) {
    return "요청한 파일 이름: " + wsFileName;
}

@RequestBody란?

  • @RequestBody는 Spring에서 클라이언트가 보낸 HTTP 요청의 Body(본문) 내용을 Java 객체로 자동 변환해서 메서드 파라미터로 넘겨주는 어노테이션임

ex) 1. 클라이언트 요청 json

{
  "name": "홍길동",
  "age": 30
}

ex) 2. 서버측 처리

@PostMapping("/save")
public String saveData(@RequestBody Map<String, Object> param) {
    String name = (String) param.get("name");
    Integer age = (Integer) param.get("age");
    return "이름: " + name + ", 나이: " + age;
}
  • param은 JSON의 key-value 구조를 그대로 담는 Map 객체로 바인딩됨
  • 이 방법은 DTO를 만들지않고 간단하게 값들만 추출하고 싶을 때 사용함

@RequestBody 없이도 되나?

방법설명
@RequestParam쿼리스트링이나 폼 전송에서 사용 (ex. ?name=홍길동)
@RequestBodyJSON 등 요청 body에 직접 담긴 데이터 처리 (ex. { "name": "홍길동" })

@Mapper 어노테이션

  • MyBatis에서 사용하는 어노테이션
  • 이 인터페이스가 SQL 매퍼 인터페이스임을 표시해서, MyBatis가 런타임에 구현체를 자동 생성해줍니다.
  • 보통 XML이나 어노테이션으로 작성된 SQL과 연결된다.
profile
개발기록장

0개의 댓글