KotlinのSpring関連記事が全然ない
最近流行りのKotlinでSpring Bootアプリケーションを実装しているのですが、ネット上にKotlinでSpring Bootを実装している記事や事例が少なくてちょっとしたことに結構時間を使ってしまいました。
なので、その中で自分がハマってしまった事を紹介していくので是非参考にしてください。
@RequestMapping
リクエストとControllerをマッピングするアノテーションで、Javaで書くと下記のようになります。
1 |
@RequestMapping(path = "/content", method = RequestMethod.GET) |
Kotlinで書く場合はarrayOfを使用して配列として書かなければいけません。
1 |
@RequestMapping(path = "/content", method = arrayOf(RequestMethod.GET)) |
.class
Javaでは下記になります。
1 2 |
Integer.class String.class |
kotlinでは下記です。Kotlinの場合は .プロパティ名と書くとJavaにコンパイルした時にgetterを使ってくれるから::になっているんだと思います。
1 2 |
Int::class String::class |
アノテーションの中のアノテーションSqlResultSetMapping
Javaの場合下記のようにアノテーションの中でアノテーションが使えます。
1 2 3 4 5 6 7 8 9 10 11 12 |
@SqlResultSetMapping( name = "SampleMapping", classes = { @ConstructorResult( targetClass = Smaple.class, columns = { @ColumnResult(name="appId", type=Int.class), @ColumnResult(name="datetime", type=Timestamp.class) } ) } ) |
Kotlinの場合、アノテーションの中のアノテーションは省略して書きます。@SqlResultSetMappingは上記の書き方を全て使うのでKotlinでいきなりこれを使おうとするとハマってしまうのでぜひ参考にしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
@SqlResultSetMapping( name = "SampleMapping", classes = ( arrayOf( ConstructorResult( targetClass = Sample::class, columns = ( arrayOf( ColumnResult(name="appId", type=Int::class), ColumnResult(name="datetime", type=Timestamp::class) ) ) ) ) ) ) |
まとめ
覚えてしまえばすごくシンプルなのですが、KotlinでSpring Bootアプリケーションを実装している参考記事や事例が全然見つからなかったので自分は結構時間を使ってしまいました。今回は直近自分がハマった3点だけ紹介しましたが今後もハマりポイントを見つけたら追記していきます。
高妻智一
最新記事 by 高妻智一 (全て見る)
- Reactのルーティングにreact-router-domとreact-router-reduxを導入する方法 - 2018-04-18
- Reactだけで作ったアプリにReduxを導入して気づいた利点 - 2018-04-15
- サーバサイドエンジニアがReactを始めるための最初の一歩 - 2018-04-14
コメントを残す