-
[Spring] Http 요청 - 응답 이해하기Spring 2023. 6. 29. 23:24
스프링의 전체적인 흐름을 정리해보자
1. tomcat에 http요청을 보낸다
우리가 주소창에 주소를 입력했을때 발생하는 일이다.
2. 스프링 부트의 디스패처 서블릿이 url을 분석하여 해당 컨트롤러를 찾는다.
디스패치가 아니라.. 디스패처 입니다..^^ 잘못 적었네
만약 사용자가 http://localhost/test 주소를 입력했다면
<TestController.java>
package me.kimyerin.springbootdeveloper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; //import java.lang.reflect.Member; import java.util.List; @RestController public class TestController { @Autowired TestService testService; @GetMapping("/test") //라우터 역할: http 요청과 메서드를 연결하는 장치 public List<Member> getAllMembers(){ List<Member> members = testService.getAllMembers(); return members; } }
@GetMapping("/test") 을 통하여 해당 Controller에게 요청을 넘겨준다
그럼 요청을 처리할 수 있는 getAllMembers()와 매치가 된 것이다.
3. 필요한 데이터 가져오기
getAllMember() 메서드에서는 비즈니스 계층과 퍼시스턴스 계층을 통해 데이터를 가져온다.
<TestService.java>
package me.kimyerin.springbootdeveloper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class TestService { @Autowired MemberRepository memberRepository; public List<Member> getAllMembers() { return memberRepository.findAll(); } }
<MemberRepository.java>
package me.kimyerin.springbootdeveloper; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface MemberRepository extends JpaRepository<Member, Long> { }
4. 요청한 값 리턴하기
원하는 데이터를 가져온 후 요청한 클라이언트에게 다시 넘겨준다.
전체적인 구조를 보면 이렇다.
'Spring' 카테고리의 다른 글
[Spring] Spring + Slack 연동해서 알림받기(1) (0) 2023.09.05 [Spring] MySQL,Cannot drop table 오류 해결하기 (0) 2023.09.03 [Spring] Spring 개념 정리 (0) 2023.06.29 [Spring] Intellij 실행시 finished with non-zero exit value 1 오류 (0) 2023.06.28 [Spring] 프로젝트 생성하기 (0) 2023.06.28