しおしお

IntelliJ IDEAのことなんかを書いてます

IntelliJ IDEA 2024.1から消えてしまったSearch Everywhereのdatabase検索タブを復活する方法

IntelliJ IDEAを2024.1のEAPにしてから消えてしまって困っていたSearch Everywhereのdatabase検索タブ(下の画像の赤枠のやつ)を復活する方法になります。 復活させるには下の画像のように設定画面のAdvanced SettingsにあるShow database tab in Search Ev…

IntelliJ IDEA2024.1 EAPで変わってしまったTerminalをもとに戻す方法

IntelliJ IDEA2024.1 EAPですっかり変わってしまったTerminal機能を従来の普通のTerminalに戻す方法になります。 戻す方法 設定画面のTools->Terminalにある、Shell integrationのチェックを外すことで、今まで通りの普通のTerminalに戻ってくれます おわり。

LogbackのLogstashEncoderを使用しつつメッセージをマスクしてみたお話

LogbackでログメッセージをJsonで出力(logstash-logback-encoderを使用)する際に、メッセージの内容を一部マスクしてみました。 マスクの方法は、logback.xmlの指定だけで特定フィールドの内容をまるっと置き換えたり、正規表現を使用して柔軟に置き換えた…

Ktorのルーティング設定で正規表現を使ってみる

Ktorの2.3.0からルーティング設定で正規表現が使えるようになったらしいので試してみたよ。 Ktor2.3.0のリリースノート Ktorの公式ドキュメント ルーティング設定で正規表現を使ってみる お試しコード ルーティング設定での正規表現の指定方法は、文字列では…

JUnit Pioneerを使ってJUnit5のテスト実行時に環境変数を設定する

JUnit5なテスト実行時に環境変数を設定(クリア)できる、拡張のGitHub - junit-pioneer/junit-pioneer: JUnit 5 Extension Packを試してみました。 テスト実行時に環境変数を設定する 環境変数の設定は@SetEnvironmentVariableアノテーションで行います。 …

Vue.js3でのv-modelのメモ

Vue.jsのバージョン3では、v-modelの仕様が結構変わっているのでそれのメモ。 サンプルコード シンプルなパターン modelValueプロパティを使った値の受け渡しになっていて、値の変更は、update:modelValueイベントを発火することで親コンポーネントに通知で…

KotestのSpring拡張を試してみる

KotestのSpring拡張を使う方法になります。 KotestのSpring拡張をdependenciesに追加 io.kotest:kotest-runner-junit5-jvmだけではなく、Spring拡張のio.kotest.extensions:kotest-extensions-springを追加します。 Mockkを使うのに便利なcom.ninja-squad:sp…

KotestでTestcontainersを使ってみる

KotestでTestcontainersを簡単に使う方法になります。 KotestのTestcontainers拡張を追加 KotestにはTestcontainers用の拡張ライブラリが用意されているので、それを依存に追加します。 build.gradleの場合 testImplementation 'io.kotest.extensions:kotest…

IntelliJ IDEAのCloud Codeプラグインを使ってSkaffoldしてみたよ

IntelliJ IDEAのCloud CodeプラグインのSkaffold機能を試してみたいと思います。 準備 Cloud Code - IntelliJ IDEs Plugin | Marketplaceをお使いのIntelliJ IDEAにインストールします。 Supported Productsに、Communityの記載があるのでUltimate以外でも使…

Skaffoldで起動したSpring BootなアプリケーションをIntelliJ IDEAでデバッグする

Skaffoldで起動したSpring BootをIntelliJ IDEAでデバッグする方法を調べてみました。1 デバッグモードでアプリケーションをデプロイする skaffold debugコマンドを使用して、アプリケーションをデプロイします。 debugコマンドを使ってデプロイすることで、…

WireMock clientのKotlin DSLを作ってみた

WireMock clientのKotlin DSLを作ってみたお話です。 導入 Maven <dependency> <groupId>io.github.siosio</groupId> <artifactId>wiremockk</artifactId> <version>1.0.0</version> </dependency> Gradle implementation 'io.github.siosio:wiremockk:1.0.0' 使い方 Stubの登録 WireMockに追加された拡張関数のregisterを使ってStubを登録できるように…

WebStormでDenoを使ってみる

お仕事でDenoを使う機会があったので、WebStormで環境構築や実行&デバッグできるか試してみました。 使用したバージョン Deno $ deno --version deno 1.14.1 (release, x86_64-unknown-linux-gnu) v8 9.4.146.15 typescript 4.4.2 WebStorm WebStorm 2021.3 …

Spring Data R2DBCで複数のデータベースに接続してみる

やりたいこと 単一のWebFluxのアプリケーションで、Spring Data R2DBCを使って複数のデータベースに接続してSQLを実行したい。 環境準備 データベース 準備が簡単なので、Docker Composeを使ってデータベースを2つ起動しています。 version: '3.7' services:…

Spring Boot + MVCでkotlinx.serializationを使ってリクエスト・レスポンスのシリアライズとデシリアライズをしてみる

Spring Boot + MVCでkotlinx.serializationを使ってリクエスト・レスポンスのシリアライズとデシリアライズを試してみました。 使用バージョンなど ↓のバージョンを使って試してみました。 Spring Bootは、2.5.4 kotlinx.serialization build.gradle.ktsはこ…

Dartの拡張関数を使ってみる

Dartの拡張関数とは Kotlinと同じような感じで、既存のクラスに対して関数追加できちゃう感じですね。 ドキュメントはこちら→(Extension methods | Dart) 構文 extension onを使って拡張したい型に対して、拡張関数を定義してあげます。 extensionとonの間に…

Elasticsearchで条件にマッチした部分を取得する

Elasticsearchで条件にマッチしたワードをハイライト表示したいなんてことありますよね。 これを実現するために、条件にマッチした部分を検索結果から取得する方法になります。 準備 インデックス内容 フィールドをひとつだけ持つインデックスを作成して確認…

kotlinx.serializationつかってJSONのシリアライズ・デシリアライズしてみたよ

kotlinx.serialization を使って、JSONのシリアライズとデシリアライズを試してみたよ。 デシリアライズ&シリアライズ JSONに対応するdata classを作成する JSONに対応するdata classには、@Serializableを設定してあげます。ネストオブジェクトに対応するク…

IntelliJ IDEA2021.1からGitのコミットメッセージテンプレートに対応したのが便利

現時点ではBeta版のIntelliJ IDEAの2021.1からGitのコミットメッセージテンプレートに対応してくれたのが便利ですね。 これを使うことでサードパーティ製のプラグインなど入れなくても、テンプレートを元にメッセージのプレフィックス的なもの入れたりするの…

Testcontainersを使ったテストの高速化

Testcontainersを使ったテストは、コンテナの起動が毎回行われるのでどうしてもslow testになってしまいます。 そこで、一度あげたコンテナを使い回すことで2回目以降のテスト実行を高速化してみようと思います。 コンテナを使い回す設定を追加 コンテナを使…

TestcontainersのElasticsearch containerでコンテナ起動時にpluginをインストールする方法

TestcontainersのElasticsearchコンテナ起動時にテストで必要となるプラグインをインストールする方法を調べてみました。 サンプルコード ElasticsearchContainerの親クラスのGenericContainerが、docker-java APIのCreateContainerCmdに対してなにか処理を…

Spring Cloud Contractのstubをもとにサーバを起動してみる

Spring Cloud Contractを試してみた - しおしおの続きで、Producer側で生成したstubsをサーバとして起動してエンドポイントを叩いて結果が取得できるか試してみました。 Spring Cloud Contractを適用したプロジェクトの作成 新規でプロジェクトを作るのは大…

single-spaでマイクロフロントエンドしてみる

single-spa | single-spaなるマイクロフロントエンドさくっと作れそうなフレームワークを試してみました。 準備 single-spa はプロジェクト作成用などのcliを用意してくれているようなので、まずはそれをインストールします。 npm install --global create-s…

Testcontainersのコンテナを複数テストクラスで使い回す

Testcontainersのコンテナを複数テストクラスで共有して使い回す方法になります。 コンテナを使い回すことで、テストクラスごとにコンテナが起動されテストの実行がめちゃ遅くなってしまう問題を解消することが期待できます。 コンテナをマニュアル起動する…

IntelliJ IDEAを使ってDbSetupのKotlin DSL用コードを生成する

IntelliJ IDEAのDatabase Tools and SQLプラグインの検索結果テーブルからGitHub - Ninja-Squad/DbSetup: An API for populating a database in unit testsのKotlin DSL用のデータセットアップコードを生成してみました。 既存のデータベースからデータセッ…

Spring Boot2.4.0からのapplication.properties(yml)の変更点φ(..)メモメモ

Spring Boot Config Data Migration Guide · spring-projects/spring-boot Wiki · GitHubにまとまっていますが、2.4.0からConfigファイル周りの設定値や読み込み順などが変わっているようです。 2.4.0より前のバージョン こんな感じにspring.profilesでプロ…

IntelliJ IDEA2020.3のEAPにしたらLombok使ってるプロジェクトのビルドができなくなったお話

IntelliJ IDEAのバージョン 2020.3 EAPの以下のビルドバージョン(これより前のビルドからこの問題が発生しています) 再現コード pom.xml <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <scope>provided</scope> </dependency> </dependencies> コード public class Main { public static vo…

Spring Cloud Contractを試してみた

Spring Cloud Contractとは Spring Cloud Contractは、Consumer-Driven Contract testing1を実現するためのフレームワークです。 お試し構成 Producerをserver-serviceとして、Consumerをclient-serviceとして構築しています。 Producer(server-service) bui…

Spring Boot 2.3からのCloud Native Buildpacksを試してみる

Spring Boot 2.3からのCloud Native Buildpacksを試してみました。 プロジェクトの作成 Spring Initializrを使って、Spring Bootのバージョンを2.3以降にしてプロジェクトを生成します。 ※お試しプロジェクトでは、Dependenciesに Spring Web と Spring Boot…

IntelliJ IDEAのElasticsearchプラグインを試してみた

IntelliJ IDEA用のElasticsearchプラグインが最近登場したらしいのでお試ししてみたよ。 使ったバージョン IntelliJ IDEA 2020.2 BETA Elasticsearch plugin 0.1.7 インストール Elasticsearchプラグインの以下ページやIntelliJのplugin settings画面からイ…

Spring BootでDomaのCriteria APIをつかってみる

doma-spring-boot-starterの1.4.0で簡単にCriteria APIが使えるようになったので早速つかってみました。 build.gradle build.gradleに必要なライブラリを追加します。 domaの2.30.0からcoreとprocessorが分離されてたのも把握できてよかったです。 implement…