Kotlin
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
%%ほのかちゃん%%
#contentsx(depth=1:2);
*参考あれこれ [#pe6519e1]
-[[Kotlin Programming Language>https://kotlinlang.org/]]
--[[Working with the Command Line Compiler>https://kotlin...
-[[サーバーサイドKotlinの導入から一年が経ちました>https:/...
-[[なぜサーバーサイドKotlinを導入するのか?>https://blog....
-[[JavaプログラマのためのKotlin入門>https://qiita.com/koh...
-[[JavaプログラマがKotlinでつまづきがちなところ>https://q...
-[[JavaプログラマがKotlinで便利だと感じること>https://qii...
-[[ラブライブ!で学ぶソフトウェア開発入門>http://learn-wi...
*てっとりばやくWindowsのコマンドラインで [#q65e1960]
**インストール [#o0216bf0]
+Kotlinのコンパイラをインストール(→ [[Working with the C...
+未インストールなら [[Java実行環境>https://java.com/ja/do...
PS W:\> kotlinc -version
info: kotlinc-jvm 1.3.21 (JRE 1.8.0_201-b09)
わざわざ手元にインストールしないで [[Kotlin Playground>ht...
**Hello [#y6421dfc]
#highlight(kt){{
fun main(args: Array<String>) {
println("Hello, again my old dear place")
}
}}
PS W:\> kotlinc .\hello.kt -include-runtime -d hello.jar
PS W:\> java -jar hello.jar
Hello, again my old dear place
**Nullable Fantasy [#h58446bb]
#highlight(kt){{
import java.util.Date
import java.text.SimpleDateFormat;
class Person {
val firstName: String
val lastName: String
val birthday: Date?
// "?"がついていなければ null 入れるコードはコンパイル...
constructor(firstName: String, lastName: String, birthd...
this.firstName = firstName
this.lastName = lastName
this.birthday = birthday
}
fun fullName(): String {
return "%s %s".format(this.firstName, this.lastName)
}
// 誕生日が null なら何も計算せず(letの中に入らず)に ...
// 整数型もオブジェクトのように扱えて、null にもできる
fun age(): Int? {
return this.birthday?.let {
val sdf = SimpleDateFormat("yyyyMMdd")
(sdf.format(Date()).toInt() - sdf.format(it).toInt(...
}
}
}
fun main(args: Array<String>) {
val person1 = Person("Kanata", "Tanaka", SimpleDateForm...
println("%s (%s)".format(person1.fullName(), person1.ag...
val person2 = Person("Kanata", "Tanaka", null)
// SQLのCOALESCE関数みたいなもの
println("%s (%s)".format(person2.fullName(), person2.ag...
}
}}
PS W:\> kotlinc .\age.kt -include-runtime -d age.jar
PS W:\> java -jar age.jar
Kanata Tanaka (5)
Kanata Tanaka (?)
**外部JARをコマンドラインから [#e7cb68c1]
実用性不明。試しに [[jsoup>https://jsoup.org/]] を手元に...
#highlight(kt){{
import org.jsoup.Jsoup
fun main(args: Array<String>) {
val doc = Jsoup.connect("http://www.capcom.co.jp/arcade...
val elms = doc.select("p.n-mTitle")
for (elm in elms) {
println(elm.text())
}
}
}}
kotlincで生成したJARにGetWebKt.classが含まれるので、これ...
PS W:\> kotlinc .\getWeb.kt -classpath .\jsoup-1.11.3.ja...
PS W:\> java -classpath ".\jsoup-1.11.3.jar;getWeb.jar" ...
Wanna Be Your Special
Touch Of Gold
:
*Spring BootをKotlinで使って、warを作ってTomcatに突っ込む...
ベースはこちら → [[Spring Boot(Kotlin) + GradleでAPIを書...
**プロジェクト作成 [#ff72011c]
[[Spring Initializr>https://start.spring.io/]]に作っても...
**コード実装 [#w1eea7c9]
***XxxxApplication.kt [#e138d6b9]
クラス名定義の後ろに SpringBootServletInitializer() を追加
#highlight(kt){{
package jp.maplia.xxxx
import org.springframework.boot.autoconfigure.SpringBootA...
import org.springframework.boot.runApplication
import org.springframework.boot.web.servlet.support.Sprin...
@SpringBootApplication
class XxxxApplication: SpringBootServletInitializer()
fun main(args: Array<String>) {
runApplication<XxxxApplication>(*args)
}
}}
***XxxxController.kt [#aede2696]
すべて新規
#highlight(kt){{
package jp.maplia.xxxx
import org.springframework.web.bind.annotation.RequestMap...
import org.springframework.web.bind.annotation.RestContro...
@RestController
class XxxxController {
@RequestMapping("/")
fun index(): String {
return "To be continued..."
}
}
}}
***build.gradle [#zac40539]
追加する分だけ記載
warタスクを実行すると、build/libsに生成されたwarが格納さ...
#highlight(kt){{
apply plugin: 'war'
war {
enabled = true
}
}}
**Tomcatにデプロイ [#n0813ca2]
$CATALINA_HOME/webappsに放り込む。環境に手を加えていなけ...
#highlight(end)
終了行:
%%ほのかちゃん%%
#contentsx(depth=1:2);
*参考あれこれ [#pe6519e1]
-[[Kotlin Programming Language>https://kotlinlang.org/]]
--[[Working with the Command Line Compiler>https://kotlin...
-[[サーバーサイドKotlinの導入から一年が経ちました>https:/...
-[[なぜサーバーサイドKotlinを導入するのか?>https://blog....
-[[JavaプログラマのためのKotlin入門>https://qiita.com/koh...
-[[JavaプログラマがKotlinでつまづきがちなところ>https://q...
-[[JavaプログラマがKotlinで便利だと感じること>https://qii...
-[[ラブライブ!で学ぶソフトウェア開発入門>http://learn-wi...
*てっとりばやくWindowsのコマンドラインで [#q65e1960]
**インストール [#o0216bf0]
+Kotlinのコンパイラをインストール(→ [[Working with the C...
+未インストールなら [[Java実行環境>https://java.com/ja/do...
PS W:\> kotlinc -version
info: kotlinc-jvm 1.3.21 (JRE 1.8.0_201-b09)
わざわざ手元にインストールしないで [[Kotlin Playground>ht...
**Hello [#y6421dfc]
#highlight(kt){{
fun main(args: Array<String>) {
println("Hello, again my old dear place")
}
}}
PS W:\> kotlinc .\hello.kt -include-runtime -d hello.jar
PS W:\> java -jar hello.jar
Hello, again my old dear place
**Nullable Fantasy [#h58446bb]
#highlight(kt){{
import java.util.Date
import java.text.SimpleDateFormat;
class Person {
val firstName: String
val lastName: String
val birthday: Date?
// "?"がついていなければ null 入れるコードはコンパイル...
constructor(firstName: String, lastName: String, birthd...
this.firstName = firstName
this.lastName = lastName
this.birthday = birthday
}
fun fullName(): String {
return "%s %s".format(this.firstName, this.lastName)
}
// 誕生日が null なら何も計算せず(letの中に入らず)に ...
// 整数型もオブジェクトのように扱えて、null にもできる
fun age(): Int? {
return this.birthday?.let {
val sdf = SimpleDateFormat("yyyyMMdd")
(sdf.format(Date()).toInt() - sdf.format(it).toInt(...
}
}
}
fun main(args: Array<String>) {
val person1 = Person("Kanata", "Tanaka", SimpleDateForm...
println("%s (%s)".format(person1.fullName(), person1.ag...
val person2 = Person("Kanata", "Tanaka", null)
// SQLのCOALESCE関数みたいなもの
println("%s (%s)".format(person2.fullName(), person2.ag...
}
}}
PS W:\> kotlinc .\age.kt -include-runtime -d age.jar
PS W:\> java -jar age.jar
Kanata Tanaka (5)
Kanata Tanaka (?)
**外部JARをコマンドラインから [#e7cb68c1]
実用性不明。試しに [[jsoup>https://jsoup.org/]] を手元に...
#highlight(kt){{
import org.jsoup.Jsoup
fun main(args: Array<String>) {
val doc = Jsoup.connect("http://www.capcom.co.jp/arcade...
val elms = doc.select("p.n-mTitle")
for (elm in elms) {
println(elm.text())
}
}
}}
kotlincで生成したJARにGetWebKt.classが含まれるので、これ...
PS W:\> kotlinc .\getWeb.kt -classpath .\jsoup-1.11.3.ja...
PS W:\> java -classpath ".\jsoup-1.11.3.jar;getWeb.jar" ...
Wanna Be Your Special
Touch Of Gold
:
*Spring BootをKotlinで使って、warを作ってTomcatに突っ込む...
ベースはこちら → [[Spring Boot(Kotlin) + GradleでAPIを書...
**プロジェクト作成 [#ff72011c]
[[Spring Initializr>https://start.spring.io/]]に作っても...
**コード実装 [#w1eea7c9]
***XxxxApplication.kt [#e138d6b9]
クラス名定義の後ろに SpringBootServletInitializer() を追加
#highlight(kt){{
package jp.maplia.xxxx
import org.springframework.boot.autoconfigure.SpringBootA...
import org.springframework.boot.runApplication
import org.springframework.boot.web.servlet.support.Sprin...
@SpringBootApplication
class XxxxApplication: SpringBootServletInitializer()
fun main(args: Array<String>) {
runApplication<XxxxApplication>(*args)
}
}}
***XxxxController.kt [#aede2696]
すべて新規
#highlight(kt){{
package jp.maplia.xxxx
import org.springframework.web.bind.annotation.RequestMap...
import org.springframework.web.bind.annotation.RestContro...
@RestController
class XxxxController {
@RequestMapping("/")
fun index(): String {
return "To be continued..."
}
}
}}
***build.gradle [#zac40539]
追加する分だけ記載
warタスクを実行すると、build/libsに生成されたwarが格納さ...
#highlight(kt){{
apply plugin: 'war'
war {
enabled = true
}
}}
**Tomcatにデプロイ [#n0813ca2]
$CATALINA_HOME/webappsに放り込む。環境に手を加えていなけ...
#highlight(end)
ページ名: