반응형
1편에서 처럼 프로젝트를 정상 생성했다면 아래와 같은 DemoApplication.kt 란 파일이 존재하는걸 확인 할 수 있다.
1편 [Spring boot] Kotlin으로 프로젝트 생성하기 포스트로 가기
어플리케이션 이란?
여기서 어플리케이션이란 프로젝트의 메인 클래스로 클래스 위에 붙은 @SpringBootApplication 주석은 스프링부트의 자동설정, 컴포넌트 스캔과 application 클래스에 추가 설정을 가능하도록 하는 기능을 한다.
package demo
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
기존 java로 작성된 application 클래스와 큰 차이는 클래스 선언에 있다.
코틀린의 경우 클래스에 속한 멤버함수와 프로퍼티가 없다면 클래스 바디에 {} 를 제외 할 수 있다.
간단한 controller 만들기
DemoApplication.kt 파일에서 MessageController 클래스를 생성한다.
@RestController
class MessageController {
@GetMapping("/")
fun index(@RequestParam("name") name: String) = "Hello, $name!"
}
- index 메소드는 하나의 명령문으로 구성된 단일 표현식 함수임으로 {} 를 생략하고 본문 앞에 = 를 붙인다.
- index 메소드의 리턴값은 문자열임으로 메소드 선언시 리턴 유형에 String을 넣어준다.
어노테이션 설명
- @RestController 어노테이션 : MessageController가 REST 컨트롤러임을 알리기 위해 붙이는 어노테이션으로 @Controller어노테이션과 달리 컨트롤러 클래스 하위 메서드에 @ResponseBody 어노테이션을 붙이지 않아도 문자열, Json을 보낼 수 있다.
- @GetMapping 어노테이션 : REST 컨트롤러의 get 호출에 해당하는 endpoint 구현시 사용된다.
- @RequestParam 어노테이션 : index 함수의 매개변수인 name을 웹요청시 매개변수에 바인딩하기 위해 사용되는 어노테이션. /?name=<name-value> 형태로 index 함수를 호출하기 위한 인수로 사용된다.
어플리케이션 실행
여기 까지 작성한 DemoApplication.kt의 main 메서드를 실행 하고, 브라우저에서 아래의 url을 호출하면 이미지와 같은 응답값이 내려오는 것을 확인 할 수 있다.
'web > Spring boot' 카테고리의 다른 글
[Spring boot] Kotlin으로 REST API 만들기 -1 프로젝트 생성 (0) | 2023.01.02 |
---|---|
Gradle : compile(api) implementation 차이 (0) | 2022.07.24 |