Java

JJUGナイトセミナー「Java 20 リリース記念イベント」に行ってきた #jjug

JJUGナイトセミナー「Java 20 リリース記念イベント」に参加しました。オンライン参加。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 最近、Java の新しい機能があまり追えてないけど、以前よりずっと簡潔に書けるようになってる印象があります。大き…

JJUG CCC 2022 Fall に行ってきた #jjug_ccc

JJUG CCC 2022 Fall に参加しました。オンライン開催。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 サーキットブレーカーは設定値の決め方がポイントな気がする。業務要件やメトリクスで基準があるとよさそう。あと、サーキットブレーカーみたいな仕…

JJUG CCC 2022 Spring に行ってきた #jjug #jjug_ccc

JJUG CCC 2022 Spring に参加しました。オンライン開催。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 久しぶりにリアルタイムで参加しました。質疑応答ができるのがリアルタイムのいいところ。時間の都合上、4セッションくらいしか参加できなかったけ…

.a.i.SimpleAsyncUncaughtExceptionHandler : Unexpected exception occurred invoking async method ...

備忘録。 @Async で非同期に処理するメソッドの中で例外が発生した場合、表題のようなエラーが出力される。 2022-01-26 22:44:58.608 ERROR 3401 --- [ task-1] .a.i.SimpleAsyncUncaughtExceptionHandler : Unexpected exception occurred invoking async m…

AWS SDK for Java で S3 のファイルをまとめてダウンロードしたい

S3 のフォルダにあるファイルを zip でまとめてダウンロードしたい。今回は AWS SDK for Java の AmazonS3#getObject を非同期で呼び出して ZipOutputStream で書き出してみる。 サンプルコードはこちら。 github.com 前提 Java 11 Spring Boot 2.5.6 AWS SD…

AWS SDK for Java + KMS で S3 暗号化

備忘録。前回の続き。 AWS SDK for Java で署名付き URL 生成 - kntmr-blog Key Management Service (KMS) と AWS SDK for Java で、クライアントサイドで暗号化して S3 にアップロードする。 キー作成 (CMS) 事前に Key Management Service > カスタマー管…

AWS SDK for Java で S3 署名付き URL 生成

備忘録。S3 の 署名付き URL を AWS SDK for Java で生成する。AWS の設定周りについては正しいかどうかは自信がない...。 <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> <version>1.11.1034</version> </dependency>

JJUGナイトセミナー「オブジェクト指向プログラミング入門」に行ってきた #jjug

JJUGナイトセミナー「オブジェクト指向プログラミング入門」に参加しました。オンライン開催。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 Software Design 2021年3月号 の特集を執筆された3名によるセッション。設計やオブジェクト指向についてどう…

Future Tech Night #10 に行ってきた #future_tech_night

Future Tech Night #10 に参加しました。オンライン開催。簡単に所感をまとめます。 future.connpass.com 所感 前半は Java 8 から Java 16 で追加された API のおさらいみたいな感じでした。Record の機能は Lombok でまかなえるっていう意見が TL で流れて…

JJUG CCC 2020 Fall に行ってきた #jjug

JJUG CCC 2020 Fall に参加しました。オンライン開催。簡単に所感をまとめます。 ccc2020fall.java-users.jp 所感 ArchUnit は去年の JJUG でもセッションがあったけど、今回は ArchUnit の柔軟さを生かした応用事例が紹介されていました。いろいろな依存解…

sdkman で Oracle JDK を管理する

たぶん需要ないと思うけど備忘録。sdkman で Oracle JDK を管理する。(開発用途) 2020/11 時点では sdkman で OpenJDK 8 はインストールできないっぽい。 $ sdk ls java ================================================================================ …

Records の Compact Constructors の中ではフィールドを初期化する処理は書けない

Java の Records に Compact Constructors と呼ばれる機能があります。 record Foo(int x) { Foo { x = 100; } } Compact Constructors の中ではフィールドを初期化する処理は書けません。コンパイルエラーになります。 record Foo(int x) { Foo { this.x = …

JJUGナイトセミナー「Java 15 リリース記念イベント」に行ってきた #jjug

JJUGナイトセミナー「Java 15 リリース記念イベント」に参加しました。今回はオンライン開催。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 チャットにも書かれてましたが、リリースサイクルが変わってから少しずつ機能が追加されていくのでキャッチア…

JJUG Java生誕25周年記念イベントに行ってきた #jjug

先日、JJUG Java生誕25周年記念イベントに参加しました。今回はオンライン開催。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 JJUG CCC 2020 Spring が中止になり、代わりに開催されたイベントです。Java 生誕25周年。セッションは総会を含めて5本でし…

JJUGナイトセミナー「みんなの小噺」に行ってきた #jjug

JJUGナイトセミナー「みんなの小噺」に参加しました。今回はオンライン開催。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 Retrofit は割と前からあるみたいだけど、初めて知りました。もともとは Android 向けなんだろうか。Type-safe だし、新しいプ…

Apache Commons Email でメール本文に画像を埋め込む

Apache Commons Email でメール本文に画像を埋め込む方法。備忘録。 HtmlEmail email = new HtmlEmail(); // ... (略) File file = Paths.get("duke.jpg").toFile(); String cid = email.embed(file); email.setMsg("本文1<br><img src=\"cid:" + cid + "\"><br>本文2"); email.send(); //=> 本文1<br><img src="cid:yektmylwmn"><br>…

ツリー構造の Java 実装サンプル

以前の続き。 動的にデータを取得する Vue.js のツリーコンポーネント - kntmr-blog これに関連して、フォルダ階層のようなツリー構造を Java で実装したサンプル。 kntmr/playground/folder-tree-examples - GitHub 子階層の要素を同じ型の List<T> で持つこと</t>…

アルゴリズム体操

Java でアルゴリズムの復習。久しぶりに書くとすっかり忘れてますね...。こういうのを呼吸するように書けるようになりたいものです。 バブルソート 配列の先頭から隣り合う要素を比較して入れ替える。これを配列の最後の要素まで繰り返してソートする。 gist…

JJUGナイトセミナー「OpenJDK祭り」に行ってきた #jjug

JJUGナイトセミナー「OpenJDK祭り」 に行ってきました。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 各 OpenJDK ディストリビューションの話でした。IBM の JIT as a Service が気になります。JIT コンパイルするサーバーを複数の JVM が共有する感じ…

JVM Language Summit Feedback TOKYO に行ってきた #jvmls_jp

先日、JVM Language Summit Feedback TOKYO に行ってきました。簡単に所感をまとめます。 connpass.com 所感 いつもは JJUG とか 言語関連の内容が中心の勉強会に参加することが多いのですが、今回は JVM 関連の内容が中心でした。おもしろそうだなと思って…

JJUGナイトセミナー「JCP20周年記念/OpenJDKテイスティング」に行ってきた #jjug

JJUGナイトセミナー「JCP20周年記念/OpenJDKテイスティング」 に行ってきました。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 山田さんの資料はとても参考になります。ソムリエ的には Liberica 推しの模様。 個人的にはこれまでの観測範囲で AdoptOpe…

JJUG CCC 2019 Spring に行ってきた #jjug_ccc

JJUG CCC 2019 Spring に行ってきました。簡単に所感をまとめます。 jjug.doorkeeper.jp セッション資料は以下で公開されると思います。 GitHub - jjug-ccc/slides-articles-2019Spring: JJUG CCC 2019 Spring 登壇資料まとめ 所感 今回、会場に WiFi が設置…

JJUG CCC 2018 Fall に行ってきた #jjug_ccc

JJUG CCC 2018 Fall に行ってきました。簡単に所感をまとめます。 www.java-users.jp セッション資料は以下で公開されると思います。 GitHub - jjug-ccc/slides-articles-2018Fall: JJUG CCC 2018 Fall 登壇資料まとめ 今回は午後からの参加だったのですが、…

Effective Java 新旧比較

超小ネタですが、Effective Java の 第2版 と 第3版 を見出しレベルで比較してみました。細かい言い回しの変更は含んでいません。というか、はじめに と付録の 第2版に対応する項目 を見ればだいたい新しい項目は把握できると思われます。が、そこをあえて項…

Java EE (Jakarta EE) 周りの名称や用語のメモ

Java EE (Jakarta EE) 周りで似たような名称や用語によく出会うので、簡単に調べてまとめてみました。個々の詳細や比較については書いてません。また、間違ってる箇所があるかもしれません。他にもいろいろあるので随時追記していこうと思います。たぶん。 J…

JJUGナイトセミナー「JDK 11リリース記念:今知っておくべきJDK 11の重要ポイント」に行ってきた #jjug

先日、JJUGナイトセミナー「JDK 11リリース記念:今知っておくべきJDK 11の重要ポイント」に行ってきました。簡単に所感をまとめます。 jjug.doorkeeper.jp メモから抜粋。(詳しくは資料をご参照ください) Java Is Still Free Java Is Still Free の翻訳がつ…

GFUG の「各ベンダーのJDKリリースモデル特集!」に行ってきた #glassfish_jp

先日、GFUG の「各ベンダーのJDKリリースモデル特集!」に行ってきました。簡単に所感をまとめます。 glassfish.doorkeeper.jp メモから抜粋。 Azul Systems - Your Long Term Java Partner Microsoft は Azul 製品の最初のユーザー Zing Java ランタイム Ja…

JJUGナイトセミナー「緊急特集!Javaの無償版はなくならないぞ!」に行ってきた #jjug

JJUGナイトセミナー「Java SE 10 / JDK10 リリース特集」に行ってきました。簡単に所感をまとめます。 jjug.doorkeeper.jp メモから抜粋。(資料が公開されたら貼っておきます) JDK:新しいリリースモデル解説 JDK: 新しいリリースモデル解説 from オラクルエ…

JJUGナイトセミナー「Java SE 10 / JDK10 リリース特集」に行ってきた #jjug

先日、JJUGナイトセミナー「Java SE 10 / JDK10 リリース特集」に行ってきました。簡単に所感をまとめます。 jjug.doorkeeper.jp メモから抜粋。(資料が公開されたら貼っておきます ⇒ 2018/03/29 追加しました) JDKリリースモデル変更について 5/17 Java Day…

Spring の @Validated と Bean Validation の javax.validation.groups.Default と groups について

実際の挙動がイメージとちょっと違うのでメモる。 パターン1 バリデーショングループのインタフェースで javax.validation.groups.Default を継承しないパターン。 interface Group {} @NotNull private String foo; @NotNull(groups = Group.class) private…