2023. 11. 3. 03:22ㆍ백엔드/Spring Boot
스프링 부트 프로젝트 실행하기
1. spring initializr에 접속 후 원하는 스펙을 선택 후 프로젝트 파일 다운로드
2. 다운로드 받은 압축파일 압축 해제 후 build.gradle 파일을 사용하는 에디터에서 실행
🔎 Handler 와 Controller 어노테이션에 대하여 알아보자.
Handler (핸들러)
Spring Boot에서 핸들러(Handler)는 HTTP 요청을 처리하고 응답을 생성하는 데 사용되는 메서드 또는 컴포넌트이다.
웹 주요 로직을 담당하며 클라이언트 요청을 처리하여 적절한 응답을 생성한다.
Controller 클래스 : HTTP 요청을 처리하는 요청 핸들러
핸들러 메소드 : 컨트롤러 클래스 내에서 @GetMapping, @RequestMapping 등의 요청 매핑 어노테이션을 사용하여 정의된 메소드
@Controller
public class Test {
// == 핸들러 메소드 ==
@RequestMapping("/test")
public String test()
return "Test";
}
// ==============
}
핸들러 메소드 종류
@RequestMapping
HTTP 요청의 경로 대하여 실행시킬 클래스나 메소드를 연결시키기 위하여 @RequestMapping 어노테이션을 사용한다.
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/office-worker")
public class OfficeWorker {
@RequestMapping("/finish-work")
public String finishWork() {
return "fin";
}
// 다양한 속성 설정
@RequestMapping(
value = "/user/{id}",
method = RequestMethod.GET,
headers = "User-Agent=Mozilla/5.0",
params = "id=1"
)
public String getUserById(@PathVariable Long id) {
// 사용자 정보 조회
return "User Details: " + id;
}
}
HTTP Method 타입 에 따라 사용하는 어노테이션
아래 어노테이션은 @RequestMapping(method = RequestMethod.{HTTP Method})의 축약 버전이다.
Ex. @RequestMapping(method = RequestMethod.GET)
- GetMapping
- PostMapping
- PutMapping
- DeleteMapping
@Controller 와 @RestController 의 차이
컨트롤러를 생성하기 위해서는 @Controller 또는 @RestController 어노테이션이 사용된 클래스를 생성해야한다.
(주로 웹 페이지 프로젝트를 만들때에는 @Controller를 사용하고 API 프로젝트를 만들 때에는 @RestController를 사용한다.)
@Controller
- Spring MVC 프레임워크에서 사용
- HTML 뷰 렌더링 및 페이지 네비게이션을 위한 컨트롤러 클래스를 정의할 때 사용
- HTTP 요청을 처리한 후, 뷰 이름을 반환하고 뷰가 존재하지 않은 경우 에러가 발생
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
// Check your ViewResolver setup! 에러 발생
@RequestMapping("/errTest")
public String errTest() {
return "Check your ViewResolver setup! 에러 발생";
}
@RequestMapping("/successTest")
public String successTest() {
return "successTest.html";
}
}
@RestController
- Spring MVC와 Spring Web에서 모두 사용
- RESTful 웹 서비스 또는 웹 API를 개발할 때 사용
- HTTP 요청을 처리한 후, 데이터를 반환하며, 반환된 데이터는 자동으로 JSON 또는 XML로 직렬화
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping("/test")
public String test() {
return "test";
}
}
'백엔드 > Spring Boot' 카테고리의 다른 글
Controller,Service,Repository에서의 DI (0) | 2023.11.05 |
---|---|
스프링 빈(Bean) 이란? (0) | 2023.11.05 |
Spring 계층 구조와 역할 (0) | 2023.11.01 |
DI, IoC 개념 (0) | 2023.11.01 |
Spring boot 프로젝트 생성하기 (1) | 2023.09.08 |