Java

IntelliJ IDEAでSpring Bootの@Valueアノテーションの引数にプロパティ値が展開されないようにする

環境 IntelliJ IDEA 2022.3 (Ultimate Edition) macOS Big Sur 11.7 概要 いつの頃からか、IntelliJ IDEAでSpring Bootの @Value アノテーションの引数部分に実際のプロパティ値が展開されるようになりました。 こう書くと… # application.yaml demo: someSt…

Spring Bootでプロパティを環境変数から読むときの変換ルール

これは完全に自分用メモなのですが Spring Bootでプロパティの値を環境変数から読むときの変数名の変換ルールは下記のとおり。 To convert a property name in the canonical-form to an environment variable name you can follow these rules: Replace dot…

jshellコマンドを使って.javaファイル無しでJavaプログラムを実行する

環境 $ jshell -version jshell 17 本題 小ネタ。 jshellコマンドは標準入力からソースコードを流し込めるので、シェルのヒアドキュメントを使うことでソースコードのファイルを作らずにJavaプログラムを実行できる。 例えば「CIのときにあらかじめcreate da…

SpringアプリのテストでHikariDataSource has been closedなどと言われたのでなんとかした

TL; DR Springのテスト時に使われるコンテキストキャッシュ DefaultContextCache はデフォルトの保持数が32で、それを超えると古いコンテキストが破棄される。そのときにDBのコネクションプールも破棄されてしまって困る。 キャッシュの保持数はSpringのプロ…

KarateでのAPIテストと同時にAssertJ-DBでデータの確認もやりたい

はじめに Karateを使うとWeb APIのリクエスト&レスポンスのテストがとてもいい感じにできるが、そうすると今度は「POSTされたデータがちゃんとDBに入っているかどうか」とかも確認したくなってきてしまうもの。 そこでKarateでのテストシナリオ実行の際、As…

Spring Bootでプロファイルごとに実装を切り替える

TL; DR @Profile や @ConditionalOnExpression を使う。ちょっとつらいけどがんばる。 サンプルコードは下記のとおり。 github.com やりたいこと システム日時を取得するユーティリティがあるが、テストのときに日時が毎回変わると困るので、特定の場合は固…

Ubuntu 11.04にOpenJDK 7をインストール

はじめに Java 7がだいぶ前に出てたので、Ubuntuにインストールしてみました。 環境 Ubuntu 11.04 (32bit) OpenJDK 1.7.0 手順 1. OpenJDKのPPAリポジトリを追加してインストールOpenJDK PPA : Damien Lecanの手順どおり、OpenJDKのPPAリポジトリを追加して…