Spring의 HTTP 처리
Spring 프레임워크에서 클라이언트, 서버, 컨트롤러 및 요청 매핑 간의 흐름을 이해하는 것을 목적으로 기술합니다
TIP 1
Spring 프레임워크에서 컨트롤러 내부의 메소드는 일반적으로 정적이 아닌 인스턴스 메소드입니다.
이는 Tomcat이 각 요청을 처리하기 위해 컨트롤러의 인스턴스를 생성하기 때문입니다.
이렇게 하면 각 요청이 별도의 컨트롤러 인스턴스에서 처리되므로 확장성과 스레드 안전성이 향상됩니다.
TIP 2
WAR 파일(웹 응용 프로그램 리소스 또는 웹 응용 프로그램 ARchive)의 경우 Tomcat과 같은 모든 서블릿 컨테이너 또는 응용 프로그램 서버에 배포할 수 있는 응용 프로그램용 패키지입니다.
이 파일을 내보내고 원격으로 전송하여 AWS와 같은 서버에 직접 배포할 수 있습니다.
Tomcat의 webapps 디렉터리로 이동하면 자동으로 배포됩니다.
Workflow
프로세스에 대한 단계별 설명은 다음과 같습니다.
- 클라이언트의 HTTP 요청
- 클라이언트는 특정 끝점에 HTTP 요청을 보냅니다.
- 웹 서버(이 경우 Apache Tomcat)가 요청을 수신합니다.
- Tomcat은
HttpServletRequest
개체를 생성하여 헤더, 본문 및 매개 변수와 같은 HTTP 요청의 데이터로 채웁니다.
- 라우팅 요청
- 요청은 URL 및 HTTP 메서드(GET, POST 등)를 기반으로 적절한 Spring 컨트롤러로 발송됩니다.
- 이 디스패치는 컨트롤러 메서드의
@RequestMapping
주석에 의해 처리됩니다.
- 컨트롤러 메서드 호출
- Spring 프레임워크는 Java의 Reflection API를 사용하여 컨트롤러에서 적절한 메서드를 호출합니다.
- 예를 들어
@RequestMapping("/hello")
주석이 달린 메서드가 있는 경우 “/hello” 엔드포인트에 대한 모든 요청에 대해 호출됩니다.
@Controller
public class Hello {
@RequestMapping("/hello")
private void main() {
System.out.println("Hello, Spring");
}
}
- 컨트롤러가 요청을 처리함
- 컨트롤러 메서드는 데이터베이스 쿼리, 요청 데이터 처리 또는 다른 서비스 호출과 같은 필요한 논리를 수행할 수 있습니다.
- 응답 준비 및 보내기
- 컨트롤러가 HTTP 응답을 준비합니다.
- 이 응답은 일반적으로
HttpServletResponse
개체로 클라이언트에 다시 전송됩니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'DEV > Java' 카테고리의 다른 글
Spring의 코드 분리 (0) | 2023.05.18 |
---|---|
Spring Response와 Request (0) | 2023.05.13 |
Aspect-oriented programming (AOP) (0) | 2023.05.11 |
Spring (0) | 2023.05.11 |
Java의 Hook Method (0) | 2023.05.10 |