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

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

【Spring】ConfigurationPropertiesアノテーションを注釈したクラスのsetterはpublicにする

@ConfigurationProperties を注釈したクラスは、setter/getterが必要。 @Component @ConfigurationProperties(prefix = "aws") public class AwsSetting { private String region; public void setRegion(String region) { this.region = region; } public S…

【SpringMVC】Apache commons-fileuploadを使用して、マルチパートリクエストをストリーミングする

モチベーション SpringMVCで作成されたアプリケーショで、 クライアントからアップロードされたファイル(マルチパート)をストリーミングして処理したかった。 というのも、Springでマルチパートのデータを受け取る場合は、ハンドラメソッドの引数に Multip…

【Java】AESを利用した暗号化・復号を標準APIで行う

結論 javax.crypto.Cipher を使用して暗号化・復号を行う 鍵は javax.crypto.spec.SecretKeySpec を使用 暗号利用モードが「初期ベクトル」を必要とする方式の場合、javax.crypto.spec.IvParameterSpec を使用。 最終的には、SecretKeySpec と IvParameterSp…

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>…

AWS Lambdaメモ -ハンドラの引数eventの中身-

今回はLambda関数として実行されるハンドラの引数 event についてのメモ。 ※Node.jsでLambda関数を作成する場合を想定しています。 間違っている場合はご指摘いただけると幸いです。 event が何者なのか分からない Lambda関数の作成はNode.jsに落ち着いたの…

AWS Lambdaメモ -その1-

今更ながらAWS Lambdaについて勉強しているので、現時点で分かっていることを書き起こしてみようと思います。 とりあえず、今回は概要をツラツラを書くだけで、コードとかは無しです。 今後もLambdaの勉強は継続していくので、メモその1ということで。 記載…

「プロになるためのWeb技術入門」を読んだ

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか を読んだ。 きっかけ 別の技術書を買いにいったら、偶々目についたので一緒に購入。 Amazonの「欲しいものリスト」にも追加しており、内容的にサクッと読めそうだったので。…

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

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

Ruby触ってみた所感とか

ここ2週間程、Rubyを触っていました。 ある程度Rubyの基礎的な部分は知ることができたので、その所感とか書いてみます。 (見返してみるとメチャクチャ浅い感想...) きっかけ 最近Wantedlyに登録して企業情報を眺めたりしてるんですが、Ruby(Rails)の求人が…

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 する。 ルーティングはアノテ…

「【勉強会】20代エンジニアのキャリア論」に参加してきた

サポーターズCoLabの勉強会「【勉強会】20代エンジニアのキャリア論」に参加させていただいたので、参加した感想を書いていこうと思います。 supporterzcolab.com 参加した目的 今後のキャリアをどうするか悩んでいるので、解決の糸口を掴みたかった 20代エ…

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

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

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

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

SLF4J + Logbackでログ出力

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

Observerパターンメモ

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