Java

Spring Securityでフォーム認証を実装する(設定編)ー Spring Security ver 6.0.0以降の場合

SpringSecirityはバージョンごとに設定の書き方が大幅に変更されている。 ここでは、バージョンごとに記載方法が大きく変更となっているJavaConfig の記載方法についてまとめる。 バージョンによらない部分の実装については、下記の記事参照。 olafnosuke.ha…

Spring Securityでフォーム認証を実装する(設定編)ー Spring Security ver 5.7.0以降6.0.0より前の場合

SpringSecirityはバージョンごとに設定の書き方が大幅に変更されている。 ここでは、バージョンごとに記載方法が大きく変更となっているJavaConfig の記載方法についてまとめる。 バージョンによらない部分の実装については、下記の記事参照。 olafnosuke.ha…

Spring Securityでフォーム認証を実装する(設定編)ー Spring Security ver 5.7.0より前の場合

SpringSecirityはバージョンごとに設定の書き方が大幅に変更されている。 ここでは、バージョンごとに記載方法が大きく変更となっているJavaConfig の記載方法についてまとめる。 バージョンによらない部分の実装については、下記の記事参照。 olafnosuke.ha…

Spring Securityでフォーム認証を実装する(実装編)

SpringSecurityはバージョンごとに設定の書き方が大幅に変更されている。 ここでは、バージョンごとに共通となっている処理の記載方法についてまとめる。 依存関係の追加 dependencies { // Spring implementation 'org.springframework.boot:spring-boot-st…

SpringRetryを使用したリトライ処理の追加方法

依存関係の追加 SpringRetryを追加する。 リトライ処理の実装にはAOPを使用しているため、AOPが使用できるように別途モジュールも追加する。 dependencies { // Spring Retry implementation 'org.springframework.retry:spring-retry' // Spring Boot Start…

Spring Bootにおけるキャッシュの有効化と利用方法

依存関係の追加 Spring側にはキャッシュ処理のインターフェースのみ用意されているので、キャッシュ使用時には別途実装を用意する必要がある。 Caffeineはキャッシュの実装を提供するモジュールである。 dependencies { // Spring Boot Starter Cache implem…

Gradleを使用したマルチプロジェクトのカバレッジレポート一括出力(JaCoCo Report Aggregation Plugin)

サブプロジェクトのカバレッジレポートを1つにまとめて出力させるにはJaCoCo Report Aggregation Pluginを使用する。 カバレッジレポート一括出力にあたって、SpringBootプロジェクトを使用していてハマった所があるので、以下の実装手順もSpringBootプロジ…

Gradleを使用したマルチプロジェクトのテストレポート一括出力(Test Report Aggregation Plugin)

プラグインを使用したテストレポート一括出力のサンプルとして、下記の2パターンのマルチプロジェクトの例を記載する。 (書き方は基本的には一緒なので似たような説明が2回記載されているが、どっちでも使えることを示すための記載である。) プロジェクト…

Gradleを使用したマルチプロジェクトのテストレポート一括出力

プラグインを使用しないテストレポート一括出力のサンプルとして、 下記の2パターンのマルチプロジェクトの例を記載する。 (書き方は基本的には一緒なので似たような説明が2回記載されているが、どっちでも使えることを示すための記載である。) マルチプロ…

カバレッジレポート出力(Gradle Jacoco Plugin)

Gradleでのカバレッジレポート出力には、「The JaCoCo Plugin」のプラグインを使用する。 Jacoco公式ドキュメント:jacoco公式 カバレッジについては、下記サイトなど参照。 atgo.rgsis.com 1. プラグインの追加 カバレッジレポートを出力したいプロジェクト…

PMD Java Rules (ver 7.0.0-rc4)- Best Practices ①

PMDバージョン: 7.0.0-rc4 AbstractClassWithoutAbstractMethod 公式ドキュメント: AbstractClassWithoutAbstractMethod Since: PMD 3.0 Priority: Medium (3) Description: 抽象メソッドを含まない抽象クラスを検出する。 抽象クラスは不完全な実装を…

Spring BootでAzure Blob Storageを操作する

Spring BootでAzure Blob Storageを操作する Spring BootにおけるAzure Blob Storageの操作にはspring-cloud-azure-starter-storage-blobを使用する。 spring-cloud-azure-starter-storage-blobを使用するには、併せてazure-spring-boot-bomを追加する必要が…

GradleのVersionCatalogを使用する

Version Catalogとは Gralde 7.0~導入された、依存関係やプラグインを集約管理するための設定方法。 公式:Sharing dependency versions between projects 単一プロジェクトの場合、build.gradleも1ファイルで完結することが多いので、あまり良さが感じられ…

Gradleで外部コマンドを実行する(Checkstyleを実行する)

Gradleでは、タスクの中で外部コマンドを実行することができる。 Gradle CheckStyle Pluginは、JavaコードだけしかCheckしないため、他のファイルに対してチェックを行うために、外部コマンドでチェックを実行する時の実装を紹介する。 以下のコードでは、ソ…

SpringBootでDBUnitを使用したJunitを作成する

依存関係の追加 テストの作成:DBUnitを使用するための設定 エクセルファイルのローダークラス作成 DB接続設定 テストクラスの作成 @SpringBootTest @TestExecutionListeners @DbUnitConfiguration @Transactional テスト用Configurationクラスの作成 エクセ…

Gradle Checkstyle Pluginで日本語エラーメッセージが文字化けする問題の解決方法

事象 Gradle Checkstyle PluginでCheckstyleのタスクを実行した際に、 チェックエラーがあった場合、コマンドプロンプト上にエラーメッセージが表示される。 特に何も設定していない場合、下記の画像のように、エラーメッセージが文字化けしてしまうという事…

QueueStorageTriggerの作成(Spring Boot)

Spring Boot でAzure FunctionsのQueueStorageTriggerを実装して、ローカルで動作確認する手順を示す。 プロジェクトの作成方法については、以下の記事参照。 olafnosuke.hatenablog.com バージョン ファンクションを新規追加する Configクラス作成 Function…

日本語メソッド名を含むテストのPMD適用

GradleのPMD Pluginでは、日本語メソッド名を含むソースコードに対するPMDの実行でエラーが発生する(Windows)。 原因として、PMDがソースを読み込むときのエンコーディングがシステムプロパティ依存であることが挙げられる。 以下のリンクのソースの16行目…

SpotBugs Plugin使用方法(Eclipse・Gradle Plugin)

Eclipse Pluginの使い方 設定 分析力 報告する最小ランク レポートする最低の信頼度 報告(可視)バグ・カテゴリー フィルターファイル ディテクター構成 実行 手動で実行する 自動で実行する Gradle Pluginの使い方 依存関係の追加 設定 タスク Eclipse Plu…

Super CSV AnnotationでCSVファイルを読み書きする

公式ドキュメント Beanクラスの作成 @CsvBeanの属性について header validateHeader headerMapper validators listeners @CsvColumnの属性について number label builder CSVファイルの書き込み 1行ずつ書き込む 複数行まとめて書き込む CSVファイルの読み込…

Dao・Entity・Sqlファイルの自動生成(Doma Codegen Plugin)

Dao・Entity・Sqlファイルの自動生成 doma-codegen-pluginは、データベースに接続しテーブルのメタデータからDao/Entity/Sqlファイルを自動作成するツールである。 自動生成時に、カラムを任意の方にマッピングさせたい場合は、以下の記事も合わせて参照する…

Open CSVでCSV形式のファイルを読み込み・書き込み

CSVファイル書き込み 最小限のコードで実装 CSVの1レコードのデータを保持するクラスの作成 CSVファイルに書き込む処理の実装 StatefulBeanToCsvBuilderの設定 区切り文字の設定 改行コードの設定 ヘッダやレコードの囲み文字の設定 ヘッダやレコードを全て…

TimerTriggerの作成(Spring Boot)

Spring Boot でAzure FunctionsのTimerTriggerを実装して、ローカルで動作確認する手順を示す。 プロジェクトの作成方法については、以下の記事参照。 olafnosuke.hatenablog.com バージョン ファンクションを新規追加する Configクラスの作成 Functionクラ…

EventGrid Triggerの作成(Spring Boot)

Spring Boot でAzure FunctionsのEventGrid Triggerを実装して、ローカルで動作確認する手順を示す。 プロジェクトの作成方法については、以下の記事参照。 olafnosuke.hatenablog.com バージョン ファンクションを新規追加する Configクラスの作成 EventGri…

HTTP Triggerの作成(Spring Boot)

Spring Boot でAzure FunctionsのHTTP Triggerを実装する手順を示す。 プロジェクトの作成方法については、以下の記事参照。 olafnosuke.hatenablog.com バージョン ファンクションの新規追加する Configクラスの作成 Functionクラスの作成 Handlerクラスの…

Spring Bootで動作するAzure Functionsプロジェクト作成(Gradleプロジェクト)

プロジェクト作成 1. 必要なツールのインストール 〇Node.js(Windows 64bit版 LTS v14.17.6) 以下のサイトからインストール。 https://nodejs.org/ja/download/ 〇Azure Functions Core Tools コマンドプロンプトで以下のコマンドを実行する。参考 npm i -…

mockMvcを使用したControllerのテスト方法(Spring Boot)

mockMvcを使用したControllerのテスト方法(Spring Boot) Controllerのテストやフィルターやインターセプターが実際に動作しているのか検証する際にMockMvcを使用する。 テストの作成方法をメモしておく。 シンプルなControllerのテスト作成 以下がテスト対象…

バリデーションのグルーピング

バリデーションの基本的な使用方法は、以下の記事参照 olafnosuke.hatenablog.com バリデーションのグルーピングの実装 バリデーションを複数つけているフィールドで、バリデーションの順番を指定したい場合や、条件によってバリデーションする項目や条件を…

カスタムバリデーションの実装方法

バリデーションの基本的な使用方法は、以下の記事参照 olafnosuke.hatenablog.com 提供されているアノテーション以外のバリデーションを行う場合、独自でバリデーション処理を実装する必要がある。 単項目チェックのカスタムバリデーションの実装方法 「文字…

Spring Boot:提供されているバリデーションの種類

バリデーションの基本的な使用方法は、以下の記事参照 olafnosuke.hatenablog.com Spring Bootで使用できるバリデーションはココを参照。 数値のバリデーション @Max 入力値が最大値以下であるかをチェックする。 対象の型:BigDecimal、BigInteger、byte、s…