Spring Boot 웹 애플리케이션을 만드는데, 언어로 Kotlin을 사용하도록 프로젝트를 구성해 봅니다. Kotlin은 안드로이드 앱 개발외에 Spring 프레임웍을 사용하는 웹 애플리케이션 개발에도 사용될 수 있다고 합니다.
프로젝트 생성은 "Spring Boot 웹 프로젝트 만들기"에서 프로젝트 생성하는것을 참조해서 생성하면 되겠습니다. 차이점은 언어를 Java가 아니라 Kotlin 으로 선택하면 되겠습니다.
이 예제도 전자정부표준프레임웍 3.8 개발툴을 사용하고 있습니다. 프로젝트를 생성하면 두 가지 에러가 보입니다.
- 첫 번째 에러는 maven-jar-plugin.version이 맞지 않아서 였습니다. 다음과 같이 프로퍼티를 수정해서 3.1.1 버전으로 오버라이드 합니다.
<properties>
<java.version>1.8</java.version>
<kotlin.version>1.2.71</kotlin.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
- 두 번째 에러는 아래와 같은 오류입니다.
이클립스 kotlin 플러그인을 설치하니까 오류가 없어졌습니다. Kotlin 플러그인의 설치는 "Eclipse에 Kotlin(코틀린) 플러그인 설치 및 간단한 프로그램 실행해보기" 글을 참조하세요. 설치후 Maven -> Update Project를 실행합니다.
Plugin execution not covered by lifecycle configuration:
org.jetbrains.kotlin:kotlin-maven-plugin:1.2.71:test-compile
(execution: test-compile, phase: test-compile)
- tomcat으로 웹 애플리케이션 실행을 위해서 다음 의존성을 추가합니다.
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
- Kotlin소스를 위한 폴더를 변경합니다.
프로젝트를 생성하면 kotlin 소스가 Java처럼 package구조와 같은 폴더 구조에 들어 있습니다. Kotlin 컨벤션에 따라 src/main/kotlin 폴더가 com.tistory.offbyone.springboot 패키지의 루트가 되도록 변경합니다.
- src/main/resources/application.properties 파일에 뷰 리졸버를 설정합니다.
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
- 테스트용 컨트롤러를 만듭니다.
package com.tistory.offbyone.springboot.web
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.GetMapping
@Controller
class WelcomeController {
@GetMapping("/welcome")
fun welcome():String {
return "welcome"
}
}
- 웹용 폴더와 테스트용 welcome.jsp 파일을 만듭니다.
src/main/webapp/WEB-INF/jsp 폴더를 만들고, 그 아래에 welcome.jsp 파일을 만듭니다.
- 실행시 final 클래스 에러 수정하기
SpringBootKotlinApplication.kt 파일에 마우스 오른쪽 키를 누르고 Run As -> Kotlin Application을 선택해서 실행하면 에러가 발생합니다.
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: @Configuration class 'SpringBootKotlinApplication' may not be final.
Remove the final modifier to continue.
Offending resource: com.tistory.offbyone.springboot.SpringBootKotlinApplication
Kotlin클래스는 기본값이 final 이기 때문에 클래스 선언 앞에 open 을 붙여줘야 합니다.
@SpringBootApplication
open class SpringBootKotlinApplication
- 실행하기
이제 Run As -> Kotlin Application를 선택해서 잘 실행이 되었습니다.
- 웹 페이지 호출하기
http://localhost:8080/welcome를 호출해서 실행해 봅니다.
Kotlin을 사용한 Spring Boot 웹애플리케이션을 만들어 봤습니다. 하지만 어느정도 쓸만한 애플리케이션을 만들어 보기 위해서는 아직도 갈길이 먼것 같습니다.
전체예제소스: spring-boot-kotlin.zip
'프로그래밍 > 스프링프레임워크' 카테고리의 다른 글
Spring Boot 웹애플리케이션에서 서비스 포트와 컨텍스트 패스를 변경하기 (0) | 2019.09.29 |
---|---|
Spring Boot + Kotlin + Thymeleaf 프로젝트 만들기 (0) | 2019.08.19 |
Spring Boot 웹 프로젝트 만들기 (15) | 2019.06.13 |
Java Config로 Exception Resolver 설정하기 (0) | 2019.03.23 |
Java Config로 메세지소스(MessageSource) 설정하기(다국어 지원) (0) | 2019.03.19 |