kagamihogeの日記

kagamihogeの日記です。

2025-01-01から1年間の記事一覧

spring-bootのTestcontainersで開発と結合テストのコンテナ設定を共有

Spring BootのService Connection を使ったTest containersの活用が全然浸透していないように思える。未だにTestcontainersをテストでしか使っていない場合は↓を見てほしい。https://t.co/awwtvJ34vk— Toshiaki Maki ( @ik.am) (@making) 2025年8月30日 spri…

spring-bootのRedisTemplateでkeyなどが\xac\xed\x00\x05になる原因と解決方法

現象 Spring Data RedisのRedisTemplateでstreamのkeyを正しく指定しているはずなのに想定通りに動作しない。下記のようなXREADGROUPコマンド相当を実行するとエラーになり、何故かkeyが文字化けしたエラーメッセージになる。 plugins { id 'java' id 'org.s…

spring-boot 3.4のStructured logging対応

チュートリアル相当 Spring Boot 3.4のstructured loggingサポート紹介エントリ https://spring.io/blog/2024/08/23/structured-logging-in-spring-boot-3-4 をひととおり試す。 plugins { id 'java' id 'org.springframework.boot' version '3.4.6' id 'io.…

spring-bootのプロパティファイル場所変更

以下抜粋の通り、spring-bootはデフォルトでは以下ディレクトリのapplication.propertiesないしapplication.yamlを読み込む。歴史的事情や、リファレンス中にもある通りKubernetes等の事情で、デフォルトの変更が望ましいケースがある。 From the classpath …

springのRestClientの使い方のメモ

https://docs.spring.io/spring-framework/reference/integration/rest-clients.html RestTemplateの後継であるRestClientの使い方について。とはいえ、おおよそは旧来のspringユーザならお馴染みなものが多く、リファレンスを見ればだいたいは事が足りる。…

spring-bootでOracleのIDENTITY列値の取得

たとえばoracleでは下記で連番を割り振れる。 CREATE TABLE sample_gen( id number GENERATED ALWAYS AS IDENTITY , value VARCHAR2(100) NOT NULL , CONSTRAINT sample_gen_pk PRIMARY KEY (id) ); import jakarta.persistence.Column; import jakarta.pers…

Oracle Database Advanced Queuingをさわる

https://docs.oracle.com/cd/E57425_01/121/ADQUE/aq_intro.htm 環境 Oracle Database 23ai Free Release 23.0.0.0.0 A5:SQL Mk-2 Version 2.20.0 docker run --name oracle_queue -p 11521:1521 -e ORACLE_PWD="Oracle23" container-registry.oracle.com/da…

springのSimpleJdbcCallでストアドプロシージャを呼び出す

springのDBアクセスにはJdbcTemplateが従来から存在しており、現在では後継のJdbcClientも利用可能である。ストアドプロシージャにはSimpleJdbcCallを使用する。 本エントリの注意点として、私はあまりOracleのストアドプロシージャに詳しくない。そのため用…

dockerでS3互換のMinIOを起動してJavaからアクセス

概要 ローカル開発環境のdockerでS3を起動してJavaからアクセスする。 MinIO https://min.io/ を使用する。dockerhubは https://hub.docker.com/r/minio/minio サンプルコード docker run とりあえず最低限の動作確認を行うためのコマンド。 docker run -p 9…