Gradle + Kotlin + Spring을 시작했습니다.
Spring과 Gradle에서 실행 환경을 만들 때의 메모입니다.
이번 목표
간단하게 문자열만을 반환하는 GET API를 만들어 보자.
병아리 만들기
먼저 프로젝트의 병아리를 만듭니다.
Spring Initializr 에서 사쿠토 만들기
설정은 아래 이미지를 참조하십시오.
↑에서 생성된 프로젝트 시점에서 메인 파일이 이미 Kotlin에 상태로 만들어졌습니다.
package com.example.demo
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
Gradle 설정하기
프로젝트의 루트 바로 아래에 gradle.build.kts
라는 파일이 있으며 이것이 gradle의 구성 파일입니다.
파일 이름을 보면 알 수 있지만 kotlin에서 gradle 설정을 작성합니다.
초기라고 API의 기능을 제공해도 되지 않기 때문에, 그것을 사용하기 위한 패키지를 사용할 수 있도록(듯이) 합니다.
또, 나중에 DB에도 접속하고 싶기 때문에 커넥터도 추가해 둡니다.
그래서 dependencies
에 추가합니다.
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import sun.security.pkcs.PKCS8Key.version
plugins {
id("org.springframework.boot") version "2.2.5.RELEASE"
id("io.spring.dependency-management") version "1.0.9.RELEASE"
kotlin("jvm") version "1.3.61"
kotlin("plugin.spring") version "1.3.61"
}
group = "com.example"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-jooq")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("mysql:mysql-connector-java") // 追加
implementation("org.springframework.boot:spring-boot-starter-web") // 追加
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
이어서 DB 설정도 해 둡니다.src/main/redources/application.properties
에 다음을 추가합니다.
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
spring.datasource.password=root
API 만들기
이제 빌드 주위에 준비가 되었으므로 Kotlin의 코드를 실제로 써 갑니다.
간단한 문자열을 반환하는 간단한 API를 만들므로 다음과 같은 느낌이 듭니다.
package com.example.demo.presentation.controller
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestMethod
import org.springframework.web.bind.annotation.RestController
@RestController
class HelloController {
@RequestMapping(value = ["/hello"],method = [RequestMethod.GET])
fun helloRouter(): String {
return "hello";
}
}
실제로 쓰고 생각한 것은
RequestMapping의 value와 method가 배열에서만 받을 수 있었다는 것입니다.
실행해보기
프로젝트의 루트로 이동하여 다음 명령을 실행
./gradlew bootRun
이제 항상 서버가 멈추기 때문에,
성공하면
<==========---> 80% EXECUTING [7m 23s]
> IDLE
> :compileKotlin > Resolve files of :compileClasspath > jackson-datatype-jdk8-2.10.2.jar
> IDLE
> IDLE
> :bootRun
> IDLE
이런 느낌으로 머무릅니다.
↓에 액세스하고, hello라는 문자가 나오면 성공입니다.
http://localhost:8080/hello
마지막으로
환경 구축과 단순한 API만이었지만, gradle이 kotlin이 되어 있거나,
어노테이션의 인수의 형태가 다르거나 여러가지 바뀌고 있다고 느꼈습니다.
조금 배워 가고 싶습니다.
Reference
이 문제에 관하여(Gradle + Kotlin + Spring을 시작했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/souhei-etou/items/c6c9b9a5706f4783241e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
먼저 프로젝트의 병아리를 만듭니다.
Spring Initializr 에서 사쿠토 만들기
설정은 아래 이미지를 참조하십시오.
↑에서 생성된 프로젝트 시점에서 메인 파일이 이미 Kotlin에 상태로 만들어졌습니다.
package com.example.demo
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
Gradle 설정하기
프로젝트의 루트 바로 아래에 gradle.build.kts
라는 파일이 있으며 이것이 gradle의 구성 파일입니다.
파일 이름을 보면 알 수 있지만 kotlin에서 gradle 설정을 작성합니다.
초기라고 API의 기능을 제공해도 되지 않기 때문에, 그것을 사용하기 위한 패키지를 사용할 수 있도록(듯이) 합니다.
또, 나중에 DB에도 접속하고 싶기 때문에 커넥터도 추가해 둡니다.
그래서 dependencies
에 추가합니다.
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import sun.security.pkcs.PKCS8Key.version
plugins {
id("org.springframework.boot") version "2.2.5.RELEASE"
id("io.spring.dependency-management") version "1.0.9.RELEASE"
kotlin("jvm") version "1.3.61"
kotlin("plugin.spring") version "1.3.61"
}
group = "com.example"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-jooq")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("mysql:mysql-connector-java") // 追加
implementation("org.springframework.boot:spring-boot-starter-web") // 追加
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
이어서 DB 설정도 해 둡니다.src/main/redources/application.properties
에 다음을 추가합니다.
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
spring.datasource.password=root
API 만들기
이제 빌드 주위에 준비가 되었으므로 Kotlin의 코드를 실제로 써 갑니다.
간단한 문자열을 반환하는 간단한 API를 만들므로 다음과 같은 느낌이 듭니다.
package com.example.demo.presentation.controller
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestMethod
import org.springframework.web.bind.annotation.RestController
@RestController
class HelloController {
@RequestMapping(value = ["/hello"],method = [RequestMethod.GET])
fun helloRouter(): String {
return "hello";
}
}
실제로 쓰고 생각한 것은
RequestMapping의 value와 method가 배열에서만 받을 수 있었다는 것입니다.
실행해보기
프로젝트의 루트로 이동하여 다음 명령을 실행
./gradlew bootRun
이제 항상 서버가 멈추기 때문에,
성공하면
<==========---> 80% EXECUTING [7m 23s]
> IDLE
> :compileKotlin > Resolve files of :compileClasspath > jackson-datatype-jdk8-2.10.2.jar
> IDLE
> IDLE
> :bootRun
> IDLE
이런 느낌으로 머무릅니다.
↓에 액세스하고, hello라는 문자가 나오면 성공입니다.
http://localhost:8080/hello
마지막으로
환경 구축과 단순한 API만이었지만, gradle이 kotlin이 되어 있거나,
어노테이션의 인수의 형태가 다르거나 여러가지 바뀌고 있다고 느꼈습니다.
조금 배워 가고 싶습니다.
Reference
이 문제에 관하여(Gradle + Kotlin + Spring을 시작했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/souhei-etou/items/c6c9b9a5706f4783241e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import sun.security.pkcs.PKCS8Key.version
plugins {
id("org.springframework.boot") version "2.2.5.RELEASE"
id("io.spring.dependency-management") version "1.0.9.RELEASE"
kotlin("jvm") version "1.3.61"
kotlin("plugin.spring") version "1.3.61"
}
group = "com.example"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-jooq")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("mysql:mysql-connector-java") // 追加
implementation("org.springframework.boot:spring-boot-starter-web") // 追加
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
spring.datasource.password=root
이제 빌드 주위에 준비가 되었으므로 Kotlin의 코드를 실제로 써 갑니다.
간단한 문자열을 반환하는 간단한 API를 만들므로 다음과 같은 느낌이 듭니다.
package com.example.demo.presentation.controller
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestMethod
import org.springframework.web.bind.annotation.RestController
@RestController
class HelloController {
@RequestMapping(value = ["/hello"],method = [RequestMethod.GET])
fun helloRouter(): String {
return "hello";
}
}
실제로 쓰고 생각한 것은
RequestMapping의 value와 method가 배열에서만 받을 수 있었다는 것입니다.
실행해보기
프로젝트의 루트로 이동하여 다음 명령을 실행
./gradlew bootRun
이제 항상 서버가 멈추기 때문에,
성공하면
<==========---> 80% EXECUTING [7m 23s]
> IDLE
> :compileKotlin > Resolve files of :compileClasspath > jackson-datatype-jdk8-2.10.2.jar
> IDLE
> IDLE
> :bootRun
> IDLE
이런 느낌으로 머무릅니다.
↓에 액세스하고, hello라는 문자가 나오면 성공입니다.
http://localhost:8080/hello
마지막으로
환경 구축과 단순한 API만이었지만, gradle이 kotlin이 되어 있거나,
어노테이션의 인수의 형태가 다르거나 여러가지 바뀌고 있다고 느꼈습니다.
조금 배워 가고 싶습니다.
Reference
이 문제에 관하여(Gradle + Kotlin + Spring을 시작했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/souhei-etou/items/c6c9b9a5706f4783241e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
./gradlew bootRun
<==========---> 80% EXECUTING [7m 23s]
> IDLE
> :compileKotlin > Resolve files of :compileClasspath > jackson-datatype-jdk8-2.10.2.jar
> IDLE
> IDLE
> :bootRun
> IDLE
환경 구축과 단순한 API만이었지만, gradle이 kotlin이 되어 있거나,
어노테이션의 인수의 형태가 다르거나 여러가지 바뀌고 있다고 느꼈습니다.
조금 배워 가고 싶습니다.
Reference
이 문제에 관하여(Gradle + Kotlin + Spring을 시작했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/souhei-etou/items/c6c9b9a5706f4783241e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)