spring
Slack の Bolt フレームワークが Java でもリリースされたということなので、早速試してみた Bolt は最先端の Slack アプリをつくるためのフレームワーク。これまでの JavaScript に加えて、今日 Java バージョンもリリースしました! ☕ 早速試してみてくだ…
Spring Batch で終了コードを設定する方法を調べると、おそらく次の資料に出くわす docs.spring.io terasoluna-batch.github.io ただ、 Spring Boot で Spring Batch を作る場合はこの方法では多分うまくいかない。これらの資料では Spring Batch にある Com…
表題の通り、簡単に試してみた。 以下、手順。
3 年間勤務した L is B を退職しました。 L is B で最後に組み立てていたプログラムが SpringBoot のアプリケーションでした。そのアプリは WebFlux にしていたため、データの動きが非常にわかりづらく、開発中はデータの流れを追えるように debug ログを出…
現在作っているもので、タスクの開始時間を柔軟に行えないか調べていたら、普通に Spring のドキュメントに書いてあり、実験の結果をメモした。 docs.spring.io なお、ここに書いてることは多くのケースでは使わないし普通のスケジューリングで十分だと思っ…
表題の通り、 Functional Spring Hands On に行ってきた。 pivotal-japan.connpass.com ハンズオンの資料はこれ github.com 基本的に手を動かさないと理解が遅いので、わりとハンズオンは好きです(用意する方は大変) 内容は、 Spring(WebFlux) アプリケーシ…
resilience4j の RateLimiter を少しだけいじったので、そのメモ。 ここの実装はダメな実装になってるので、ちゃんとした使い方を調べてる人は他をあたった方が良い(強く推奨)。
前回 ReactiveCrudRepository を使ったアプリケーションの話をしたが、残念なことに今の所トランザクションを指定できないので、アプリケーションを終了したら、データはなくなるし、複数のテーブルへの操作をアトミックな操作として指定できないことをメモ…
5日間休みなので、おさらいも兼ねて、久々に Spring をさわることにしている。なお、 Kotlin にしているのもおさらいを兼ねている。また Kotlin coroutine を使っていないのは r2dbc-postgres と組み合わせたときに、 ByteBuf の readableBytes がレスポンス…
久々に Spring WebFlux を書いてたのだが、いまいちルーティングがうまくできず、 Routing Function に対してテストを書いてみることにした。 で、テストの書き方を調べてみたのだが、とりあえず何も見つからなかった(サーバーを起動するパターンは見つかっ…
JSUG のLT会で 『Spring Boot アプリケーションの起動をほんの少し気持ちだけ速くしてみた』というタイトルでLTしてきたところ、 Spring 5 から @Component のインデックススキャンがサポートされるようになったことを教えてもらったので、試してみました。 …
Spring WebFlux Security でカスタム認証を実装します。ベースとなるユーザー認証部分は以前に実装したとおりです。 mike-neck.hatenadiary.com 今回は権限まわりの実装します。〜〜のパスには〜〜の権限が必要みたいなやつです。 特定のリソースへの特定の…
Spring WebFlux フレームワークは戻り値の方は Mono<V> になるのだが、この Mono<V> が empty の場合、Spring 側でよしなにやってくれると思ったら、実はそうでもないらしい。 例えばこのようなハンドラーを作ってみる Mono<ServerResponse> test(final ServerRequest request) { f</serverresponse></v></v>…
Spring Security の WebFlux Security Configuration という公式のドキュメントにあるセクションにも書いてあるのだが、ユーザー認証の実装はこれまでの Spring Security にある UserDetails の Reactive 版である ReactiveUserDetails を実装したオブジェク…
Spring 5 から Reactive Web というのになるらしく、サーバーの性能が落ちにくくなると聞いた(違うかもしれない)ので、 家で試してみることにした。 環境 Spring Boot: 2.0.0.RC1 Java: 1.8 ビルドファイル 以下の curl コマンドで取得できるもの curl https…
同じURL(/foo/bar)に異なるメソッド(baz(Baz baz) と qux(Qux qux) の二つのメソッド)を割り当てる方法 @Canonical class Text { String text } @Canonical class Bidirecional { String question String answer1 String answer2 } @Canonical class Result<T> </t>…
spring-security-oauth を用いてリソースサーバーを実装する場合、 tokenServices という名前の ResourceServerTokenServices を実装するクラスのビーンを作ります。これを実装する時に気をつける必要があるのが、 ResourceServerTokenServices に、 loadAut…
Spring Security OAuth2 を用いたリソースサーバーを、データベース連携で実装するパターンの実験をしてみた。 spring-security-oauth のドキュメント の Resource Server Configuration の部分を読むとリソースサーバーの実装については、次のように書いて…
Spring MVC で日本語を含むURLにリダイレクトすると… @GetMapping(path = "bar") String somePage() { return "redirect:/to/日本語url"; } $ curl -v http://localhost:8080/foo/bar * Trying ::1... * TCP_NODELAY set * Connected to localhost (::1) por…
ドキュメント探しても、ググってもstack overflowを探しても明確に書かれていなかったっぽいので(本来的には hal の仕様を見るのが正しいかもしれない) 次のような二つのエンティティが存在するものとする。 @Entity class Book { @Id private Integer id; p…
何か日本語でなかったため。 実行するのは spring-web が jar にある Java SE 環境(Spring context は存在しない)。 必要なライブラリー org.springframework.hateoas:spring-hateoas とその依存ライブラリー 使ったバージョン spring-core: 4.3.13.RELEASE …
Spring Data REST + Spring Data JPA で こんなエンティティを作る。 @Entity public class User { @Id @GeneratedValue(strategy = IDENTITY) private Long id; private String name; } @Entity public class Message { @Id @GeneratedValue(strategy = IDE…