Submit Search
Upload
Spring + Gradle + Kotlin W8LT#5
•
6 likes
•
1,624 views
Junpei Matsuda
Follow
Spring + Gradle + KotlinでWebアプリを作ってみたかった
Read less
Read more
Technology
Report
Share
Report
Share
1 of 21
Download now
Download to read offline
Recommended
Sprocketsを捨てたい
Sprocketsを捨てたい
Masato Noguchi
Yohoushi
Yohoushi
Naotoshi Seo
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!
Masato Noguchi
RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩
Masato Noguchi
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
Masahiro Satake
名古屋アジャイル#33 就活体験談~世間はつらいよ~
名古屋アジャイル#33 就活体験談~世間はつらいよ~
WhiteKirby No6
入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみる
Masayuki Sakamoto
Recommended
Sprocketsを捨てたい
Sprocketsを捨てたい
Masato Noguchi
Yohoushi
Yohoushi
Naotoshi Seo
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!
Masato Noguchi
RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩
Masato Noguchi
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
Masahiro Satake
名古屋アジャイル#33 就活体験談~世間はつらいよ~
名古屋アジャイル#33 就活体験談~世間はつらいよ~
WhiteKirby No6
入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみる
Masayuki Sakamoto
Kotlinのwebフレームワーク探訪
Kotlinのwebフレームワーク探訪
豊明 尾古
Application Developer Festival 2015 LT
Application Developer Festival 2015 LT
Junpei Matsuda
れれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8lt
Junpei Matsuda
Try to Write A Better Commit Message
Try to Write A Better Commit Message
Junpei Matsuda
初心者大歓迎! Webアプリを作ってみよう!
初心者大歓迎! Webアプリを作ってみよう!
淳平 豊田
PRML2.3.8~2.5 Slides in charge
PRML2.3.8~2.5 Slides in charge
Junpei Matsuda
Kotlinで快適Android開発 #W8lt
Kotlinで快適Android開発 #W8lt
Junpei Matsuda
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot Starter
Ryosuke Uchitate
Spring boot劇的ビフォーアフター
Spring boot劇的ビフォーアフター
orekyuu
もう一度Kotlinの話をしよう #ndsmeetup4
もう一度Kotlinの話をしよう #ndsmeetup4
Yukiya Nakagawa
はじめてのSpring Boot
はじめてのSpring Boot
なべ
Spring Framework勉強会
Spring Framework勉強会
Masakazu Matsushita
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
Yuichi Hasegawa
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Java女子部
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
心 谷本
Server Side Kotlin
Server Side Kotlin
yy yank
Kotlin as an AltJS
Kotlin as an AltJS
Shinya Mochida
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
More Related Content
Viewers also liked
Kotlinのwebフレームワーク探訪
Kotlinのwebフレームワーク探訪
豊明 尾古
Application Developer Festival 2015 LT
Application Developer Festival 2015 LT
Junpei Matsuda
れれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8lt
Junpei Matsuda
Try to Write A Better Commit Message
Try to Write A Better Commit Message
Junpei Matsuda
初心者大歓迎! Webアプリを作ってみよう!
初心者大歓迎! Webアプリを作ってみよう!
淳平 豊田
PRML2.3.8~2.5 Slides in charge
PRML2.3.8~2.5 Slides in charge
Junpei Matsuda
Kotlinで快適Android開発 #W8lt
Kotlinで快適Android開発 #W8lt
Junpei Matsuda
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot Starter
Ryosuke Uchitate
Spring boot劇的ビフォーアフター
Spring boot劇的ビフォーアフター
orekyuu
もう一度Kotlinの話をしよう #ndsmeetup4
もう一度Kotlinの話をしよう #ndsmeetup4
Yukiya Nakagawa
はじめてのSpring Boot
はじめてのSpring Boot
なべ
Spring Framework勉強会
Spring Framework勉強会
Masakazu Matsushita
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
Yuichi Hasegawa
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Java女子部
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
心 谷本
Server Side Kotlin
Server Side Kotlin
yy yank
Kotlin as an AltJS
Kotlin as an AltJS
Shinya Mochida
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
Viewers also liked
(18)
Kotlinのwebフレームワーク探訪
Kotlinのwebフレームワーク探訪
Application Developer Festival 2015 LT
Application Developer Festival 2015 LT
れれれのGitおぢさん - git rerere #w8lt
れれれのGitおぢさん - git rerere #w8lt
Try to Write A Better Commit Message
Try to Write A Better Commit Message
初心者大歓迎! Webアプリを作ってみよう!
初心者大歓迎! Webアプリを作ってみよう!
PRML2.3.8~2.5 Slides in charge
PRML2.3.8~2.5 Slides in charge
Kotlinで快適Android開発 #W8lt
Kotlinで快適Android開発 #W8lt
Spring starterによるSpring Boot Starter
Spring starterによるSpring Boot Starter
Spring boot劇的ビフォーアフター
Spring boot劇的ビフォーアフター
もう一度Kotlinの話をしよう #ndsmeetup4
もう一度Kotlinの話をしよう #ndsmeetup4
はじめてのSpring Boot
はじめてのSpring Boot
Spring Framework勉強会
Spring Framework勉強会
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
Server Side Kotlin
Server Side Kotlin
Kotlin as an AltJS
Kotlin as an AltJS
Spring bootでweb 基本編
Spring bootでweb 基本編
Recently uploaded
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Recently uploaded
(9)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
Spring + Gradle + Kotlin W8LT#5
1.
Spring Gradle Kotlin でWebアプリケーションを作ってみてる W8LT#5 @ふぁっとだるま
2.
もういらない気がしてきた • 松田 淳平
(だるま,デブ,酒クズ) • 東工大 佐伯研M2 • Java, Kotlin,シェル芸 • twitter:@fat_daruuuuma, github:jmatsu
3.
発端 • 某講義のページがRails1だか2で動いている • 最低限の機能しかないので不便 •
講義中小課題提出がメール • メール用の管理ツールも古い • 今後のこと(あと数年?)も考えるとちょっと不安 → 新しいものを作るしかない (๑•`ㅂ•́)✧و
4.
検討 • Rails4 • つまらない •
現在のサーバーを汚すのは避けたい • Play1.x (一回作りました) • 助教氏「なんで2.xじゃないの」 • 僕「それな」 • Play2.x • sbt「ぶおおおんwwww・・・(フリーズ」 • 本当に消えて欲しい
5.
検討(続) • Play1.xでいいやん! • バグが見つかる •
設計が汚い • Java7で書かれている(重要) • 用意した自動設定の書式を忘れた(最重要) • 作り直すにも, • Lambdaがないとやる気になれない • Play2.xは重すぎてやる気になれない
6.
そうだ、Kotlinにしよう • 目的等をガン無視して手段から入る最低な発想
7.
Kotlin • 静的型付オブジェクト指向のJVM言語 • intelliJで有名なJetBrains社が作成(現在OSS化) •
Javaと相互完全運用 • Lambdaやら諸々が標準装備 7 ♡
8.
検討(続続) • あ、KotlinでPlay1.xって動くんかな!? → 祈りが足りず動く方法を見つけられない •
KotlinでPlay2.xなら!? • Gradle → 祈りが足りず終了 • Sbt → まあ動きはしたけど重すぎ却下 • Kotlinでなんかないかな!? • 勉強会で @yy_yank さんがSSに触れてたぞ! • http://www.slideshare.net/yyyank/server- side-kotlin-49030491 • Spring Bootが現実的っぽい?
9.
Spring Boot • Spring
frameworkの各コンポーネントを簡単に 使えるようごにょごにょしたもの • Controllerレイヤーに関するコンポーネントだけ, とか色々選択しながら利用することが可能 • Not XML-based configuration. • Java/Annotation-based Configuration! 9 ♡
10.
つまり 10 ♡ ♡
11.
11 ♡
12.
じゃなくて 12 ♡
13.
13 ♡
14.
14 ♡ 接着剤
15.
要件(?)を全て満たしている(???) • Rails4 • つまらない →
楽しい! • 現在のサーバーを汚すのは避けたい → one jarなので汚れない! • Play1.x (一回作りました) • 助教氏「なんで2.xじゃないの → この議論が不要!!! • 僕「それな」 → それな • Play2.x • sbt「ぶおおおんwwww・・・(フリーズ」 → Gradleなので問題ない(?) • 本当に消えて欲しい → 使わない!
16.
利用物 • Controller layer •
Spring Boot Starter(SBS) Web • Model layer • mongoDB via SBS • View layer • Thymeleaf via SBS • Security component • SBS Security 16
17.
構築は超簡単 • Gradleでひな形を作成 • Kotlinの設定 •
Kotlin pluginを追加 • compileにKotlinのstdlibを追加 • Spring Bootの設定 • Spring Boot pluginを追加 • compileに必要なコンポーネントを追加 • springBoot内でmainClassを記述 • 以上.一瞬で終わる.下は最小構成 • https://github.com/jmatsu/SpringBootWithKotlinSample 17
18.
つまずいた点 • KotlinのIntやStringがSerializableじゃない • このままじゃmodelのIDに使えない!! •
ネット情報「Converterってのがあってな?」 • 僕「Configクラスで追加すればええんやな?」 • Configクラスでinjectionがエラーになる orz • @Value( ${spring.data.mongodb.database} ) • Kotlinだと変数展開と判定 → CE • Raw stringにしても無理 • ラップして回避 • E.g. data class SInt(body: Int): Serializable 18
19.
Spring Boot w/
Kotlinの利点 • Null安全 && Let等による構造化が強すぎる • API部分で冗長になりがちな記述に対して良い • スコープが制限されるのでレイヤー違反を減らし やすい • Accessorが生えるので,PropertyはViewから そのままアクセス可能 • import A as B が神すぎてヤバい 19
20.
Spring Boot w/
Kotlinの欠点 • View側ではKotlinは使えない • Javaから呼び出すときの記法に従う必要がある • そのままじゃ拡張メソッドは使えない • Kotlin部分はHotDeployできない・・・ • 拡張メソッドを使える余地が大きすぎる • 各自が勝手に拡張するとひどいことになりそう • Android開発時よりも,冗長な部分の解決策が広 そうな感触 20
21.
課題 • 有用性は大いにあるけど,HotDeployがないのは つらい • 現状の規模ならビルドは十分に早いけども •
Webフレームワーク用Kotlinライブラリが必要 • Kotlin人口 • はよAndroid界の標準になって欲しいな!!!1 21
Download now