SpringBoot + Kotlin劇的ビフォーアフター@orekyuu
自己紹介• @orekyuu• 京都コンピュータ学院 情報科学科 4 回生• IDE は IntelliJ IDEA が好き
_人人人人人人人人人_> 突然の宗教戦争 < ̄ Y^Y^Y^Y^Y^Y^Y^Y ̄
今回する話
Kotlin は Androidだけじゃないぞ!
そんな話
この会場で Kotlinを使っている方会場の 10 割くらいを想定
Kotlin を Androidで使っている方Kotlin を使ってる方の 8 割を想定
Kotlin を Android以外でも使っている方
SpringInitializer の Languageで Kotlin が選べるようになった!
( っ’ ω’c) ほう……
( っ’ ω’c) 悪くない……
( っ’ ω’c) うごいた!
( っ’ ω’c) これからは Kotlin だ!
とはならないよね?
動いたけど・・・• DI と Kotlin って相性悪そう• Java のフレームワークで Kotlin 使うの怖い• 落とし穴多そう
( ^q^)Kotlin+SpringBootのうまくいかない所探すぞ〜〜〜
( ^q^)DI どうすんのよ
@Injectprivate var hoge: Hoge? =
null
▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわあああああああああ
@Injectprivate var hoge: Hoge? =
null
nullable になっているのがダサい
値分かりきってるのに書きたくない
解決策
lateinit を使おう
@Injectprivate lateinit var hoge:
Hoge
Kotlin は DI のこともちゃんと考えられている!
( っ’ ω’c) ええやん
NEXT
( ^q^)JRebel 使える?
JRebel とは
アプリを再起動せずコードの変更を反映できるやつ
DEMO
結論 : 問題なく動く
NEXT
( ^q^)AOP 大丈夫なの?
試してみた
( っ’ ω’c) 実行!
( ^q^)…
( ^q^)……
( ^q^)???
動いてない
Kotlin ではfinal がデフォルト
open にすれば動く
NEXT
@Bean
値を返すだけならfun hoge() = 式と書ける
( っ’ ω’c) ええやん
( っ’ ω’c)oh…
Configuration problem: @Bean method ‘hogeService'
must not be private or final; change the method's modifiers to continue
訳: open にしろや
ハマリポイントまとめ
基本的にopen にする / しないに気をつければ良さそう
??? 「わざわざKotlin使う意味あるの?」
Kotlin を使って嬉しいところ
CASE 1POJO
Kotlin のフィールドにはgetter/setter が生えてくる
class User { private String id; private String name;
public User() {} public User(String id, String name){…} (getter/setter が続く… )}
class User( var id: String = “”, var name: String = “”)
getter/setter👋
CASE 2null の扱い
Java ではnull への対策どうしてますか?
JSR-305@Nonnull@Nullable
@Nullablepublic String hoge( @Nonnull String str1, @Nullable String str2) {}
fun hoge( str1: String, str2: String?): String?
アノテーション書いてって言っても書かない人出てくる💢
Kotlin なら大丈夫👏
Annotation👋
まとめ
ハマリポイント + 資料の少なさVS
Kotlin を使うメリット
天秤にかけてどっちに傾くか
僕は Kotlin に傾きました
Java から Kotlinに移行中です
← 今の僕
用法用量を守って正しく使いましょう
あ、ちなみに
就職先探してます
よかったら声かけてください
おしまい
_人人人人人人_> 質問とか < ̄ Y^Y^Y^Y^Y  ̄
Top Related