怠惰系エンジニアのメモ帳

勉強した内容をメモしていきます。解説ブログではないので悪しからず。

Java

Log4j2からElasticsearchにログを流し込む

ログをファイルに出力するのではなく、Elasticsearchに流し込む方法が知りたかったので調べてみました。 「 Spring(SpringBoot)アプリケーションから出力されるログをElasticsearchに流し込む」のがゴールになります。 ログ実装には Log4j2 を用います。(…

【SpringWebFlux + Doma2】T型をFlux<T>に変換するCollector

SpringWebFlux + Doma2 で開発していて、Daoの戻り値を Flux<T> にしたかったので Flux<T> に変換する Collector 作った話。 当たり前だが、DomaのDaoメソッドは戻り値を Flux<T> で返せない。 @Dao public interface PersonDao { @Select Flux<Person> findAll(); // これダ</person></t></t></t>…

【SpringWebFlux】エラーハンドラ(WebExceptionHandler)のテストを行う

SpringWebFluxでのエラーハンドリングは、WebExceptionHandler を継承してハンドラを作成する。 SpringBoot 2.0.0でRouterFunctionのエラーハンドリングをWebExceptionHandlerで行う 以下のようなエラーハンドラが定義されていると仮定。 @Component public …

【SpringWebFlux】ServerRequest のボディをジェネリックな型に変換する

ServerRequest#bodyToMono メソッドを使用する。(Flux の場合はbodyToFlux) public Mono<ServerResponse> handle(final ServerRequest request){ // プレーンな型に変換する場合 Mono<Person> person = request.bodyToMono(Person.class); // ジェネリックな型に変換する場合 // Pa</person></serverresponse>…

RandomStringGeneratorでランダムな文字列を生成する

commons-text の RandomStringGenerator を使用してランダムな文字列を生成してみた。 というのも、commons-lang の RandomStringUtils が非推奨になったらしい。 RandomStringUtils (Apache Commons Lang 3.6 API) 確かに @Deprecated ついてる。 (2018/03/…

BeanValidationメモ_その2

前回に引き続き、Bean Validationについてのメモ。 今回はカスタムバリデーションについて。 記載内容に間違いなどがありましたら、指摘していただけると幸いです。 カスタムバリデーション Bean Validationは、ユーザが独自にバリデーターを作成することが…

BeanValidationメモ_その1

Bean Validationを利用した入力チェックについて調べる機会があったので、備忘を兼ねてメモ。 特に目新しいことは記載していません。 記載内容に間違いなどありましたら、指摘していただけると幸いです。 参考 以下のサイト、書籍を参考にさせていただきまし…

【Spring + Doma】ドメインクラスを、フォームクラスのフィールドとして使用する

DomaではドメインクラスというValueObjectを使用できますが、どうせならフォームクラスのフィールドとしても使用したいなと思って検証してみました。 ※そもそもドメインクラスをフォームクラスのフィールドとして利用するのはどうなのか、という疑問はありま…

Spring Web Flux + Thymeleaf で画面出力する

過去に同じことやろうとしてダメだったので、リベンジ。 Spring Web Flux + Thymeleaf で画面出力したかった 内容に間違いなどがあれば指摘をお願いします。 やりたいこと 前回と同じく、SpringWebFlux と Thymeleaf で GetWild する。 ルーティングはアノテ…

Spring Web Flux + Thymeleaf で画面出力したかった

Spring Framework5で追加されるSpring Web Flux と 、Thymeleaf で画面出力したかたが…できなかった。 (具体的には RouterFunctions でルーティングを定義したアプリでThymeleafが使えるのか知りたかった。) もし解決方法をご存知の方がいらっしゃったら、…

【Java】整数リテラルの表記メモ

JavaSE8 Silverの勉強を始めたのですが、仕様を理解していない箇所がちらほら出てきてるのでメモ。 今回は整数リテラルの表記について。

SLF4J + Logbackでログ出力

SLF4J と Logback を使用したログ出力について調べたので、忘れないようにメモ。 普段の開発でログ出力は行っていますが、ログ出力のための基盤(ライブラリ)周りについては無知でしたので、 今回の勉強でチョットログ分かる程度にはなれたかなと思います。 Java…

Observerパターンメモ

「Java本格入門」の中でデザインパターンについて触れられており、理解を深めるために実際にコーディングしながら読み進めたので、忘れないようにメモ。 認識に間違いがあれば指摘していただけると幸いです。 Observer パターンとは Observer パターン(オブ…