@ResponseStatus
·
Spring/어노테이션
🧩 역할반환할 HTTP 상태코드를 지정하는 어노테이션🚀 특징상태코드뿐만 아니라 메시지도 첨부할 수 있다.기본 200임예외 클래스에 붙혀서, 실패 상태코드를 세분화 할 수 잇음@PostMapping("/users")@ResponseStatus(HttpStatus.CREATED)public void createUser() { // 사용자 생성}@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "entity not found")final class DataNotFoundedException(message: String): RuntimeException(message) { private val serialVersionUID: Long = 1L}
@PathVariable
·
Spring/어노테이션
🧩 역할URL경로에 포함된 값을 메서드 파라미터로 꺼내쓰게 도와주는 역할 🚀 특징어노테이션에 명시한 파라미터 명과, 함수에서 명시한 파라미터이 일치해야함@GetMapping("/posts/{postId}/comments/{commentId}")fun getComment( @PathVariable postId: Long?, @PathVariable commentId: Long?): String { return postId.toString() + ", " + commentId}
서비스 알아보기
·
Spring/튜토리얼
🏁 학습할 내용필요한 이유정의간단하게 만들어보기도입된 후 레이어✅ 필요한 이유 🙋 없어도 문제가 되지 않았던 이유 현재 우리의 구조는 Controller에서 직접 repository를 들고있는 형태다. 더 자세히 설명하면, repository가 DB에 접근해 원하는 결과 entitiy를 얻어오고, 그 결과를 템플릿에게 전달해서 표시해주고 있다. 현재는 단일 페이지라 문제가 없어보이지만, 조금 더 복잡한 화면들이 있다고 상상해보자. 🧩역할 1️⃣모듈화만약 A,B 컨트롤러들이 C라는 레포지토리에서 여러개의 함수가 순차적으로 실행된 결과를사용한다고 가정해보자. 그렇다면 A,B는 C 레포지토리를 순차적으로 호출하는 중복코드를 갖게되고, 이 코드는유지보수에 좋지 않은 영향을 줄 수 있다. 이 때, 서비스에 ..
리다이렉트 하기
·
Spring/튜토리얼
🚚리다이렉트 하기 @Controllerclass HelloController { @GetMapping("/") public fun hello(): String { return "redirect:question/list" }}
Thymeleaf
·
Spring/튜토리얼
🧩 역할스프링에서 가장 많이 쓰이는 서버 사이드 템플릿 엔진🚀 특징HTML을 그대로 유지하면서, 서버 데이터를 동적 바인딩할 수 있음HTML 친화적이여서, 디자이너 / 프론트엔드와 협업하기 좋음🔨 동작 구조브라우저 요청 ↓Controller ↓ (Model에 데이터 담기)Thymeleaf ↓HTML 렌더링 ↓브라우저 응답🔍 사용법 0️⃣ 설치implementation("org.springframework.boot:spring-boot-starter-thymeleaf")implementation("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect") 1️⃣ 데이터 넣기Model을 이용하여, template에 데이터를 key와 value 형태로 저장..
@ResponseBody
·
Spring/어노테이션
🧩역할 Response Body를 직접 작성하는 어노테이션@ResponseBody가 없으면 View(파일명)으로 인식✅ 사용 예시차이를 살펴보면, @ResponseBody가 없으니깐, Get 응답에 대한 응답이 없어, Error를 뱉어낸다. @GetMapping("/hello") @ResponseBody public fun hello(): String { return "Hello Spring Boots" } @GetMapping("/hello") public fun hello(): String { return "Hello Spring Boots" // 파일명으로 인식했지만, 파일이 없음 } 출처