- [JPA] 스프링부트에서의 간단한 요청과 응답 동작 방식2024년 09월 26일
- Song hyun
- 작성자
- 2024.09.26.:06
728x90반응형[JPA] 스프링부트에서의 간단한 요청과 응답 동작 방식
1. 클라이언트: /user 로 GET 요청을 한다. 이 요청은 톰캣-> 스프링부트 애플리케이션으로 전달된다.
2. 스프링 부트의 디스패쳐 서블릿이 요청을 받는다. 디스패쳐 서블릿은 요청된 URL을 분석하고, 이를 처리할 수 있는 컨트롤러와 메서드를 찾는다.
3.컨트롤러에서 비즈니스 로직이 필요할 떄, 비즈니스 및 퍼시스턴스 계층을 통해 데이터가 처리된다.
2. 시나리오 코드
package com.tenco.demo.controller; import org.springframework.web.bind.annotation.RestController; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.ToString; import java.util.Map; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @RestController // IoC -> @Controller + @ResponseBody // @RequestMapping public class GetApiController { // 주소 설계 http://localhost:8080/hello @GetMapping("/hello") public String getMethodName() { // 메세지 컨버터가 동작한다. // StringHttpMessageConverter 객체가 동작함 return "Say Hello~"; } // 쿼리 스트링 방식(@RequestParam) // 주소 설계 http://localhost:8080/qs1?name=둘리 @GetMapping("/qs1") public String qs1(@RequestParam(name="name") String param) { return "안녕 "+param+"야~"; } // 주소 설계 http://localhost:8080/qs2?name=둘리&age=100000 @GetMapping("/qs2") public String qs2(@RequestParam(name="name") String name, @RequestParam(name="age", required = false)Integer age) { return "안녕 "+age+"살 "+name+"야~"; } // 주소 설계 http://localhost:8080/qs3?name=둘리&age=100000&groupId=com.tenco @GetMapping("/qs3") public String qs3(@RequestParam Map<String, String> data) { // Map 방식으로 동적 데이터 바인딩하기 StringBuffer sb = new StringBuffer(); data.entrySet().forEach(entry -> { System.out.println(entry.getKey()); System.out.println(entry.getValue()); System.out.println(); sb.append(entry.getKey()+"="+entry.getValue()); }); return sb.toString(); } // 쿼리 스트링 방식(@RequestParam) // 주소 설계 http://localhost:8080/qs4?name=둘리 @GetMapping("/qs4") public String qs4(User user) { return user.toString(); } // 클래스 @AllArgsConstructor @Getter @ToString class User{ private String name; private String age; } }
728x90반응형'JPA' 카테고리의 다른 글
[JPA] 8. JPA와 하이버네이트란? (0) 2024.09.30 [JPA] 7. 스프링 부트 DB 접근 기술 ORM (0) 2024.09.30 [JPA] 6. DELETE 방식의 이해 (0) 2024.09.27 [JPA] 5. PUT 방식의 이해 (0) 2024.09.27 [JPA] 4. GET 방식과 URL 주소 설계 (1) 2024.09.26 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)