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: 抽象メソッドを含まない抽象クラスを検出する。 抽象クラスは不完全な実装を…

PMD JavaScript Rules (ver 7.0.0-rc4)- Error Prone

PMDバージョン: 7.0.0-rc4 AvoidTrailingComma 公式ドキュメント: AvoidTrailingComma Since: PMD 5.1 Priority: High (1) Description: ブラウザによってオブジェクトや配列リテラルの末尾のコンマの扱いが異なるため、末尾にコンマを書かないように留…

PMD JavaScript Rules (ver 7.0.0-rc4)- Code Style

PMDバージョン: 7.0.0-rc4 AssignmentInOperand 公式ドキュメント: AssignmentInOperand Since: PMD 5.0 Priority: Medium High (2) Description: 条件式内での値の代入は避ける。コードが複雑になり、読みにくくなる。 等号演算子「==」の代わりに代入…

PMD JavaScript Rules (ver 7.0.0-rc4)- Best Practices

PMDバージョン: 7.0.0-rc4 Best Practices AvoidWithStatement 公式ドキュメント: AvoidWithStatement Since: PMD 5.0.1 Priority: High (1) Description: withの使用を避けるべきである。 Configuration: <rule ref="category/ecmascript/bestpractices.xml/AvoidWithStatement" /> Example: with (object) { property = 3; //</rule>…

PMD HTML Rules (ver 7.0.0-rc4)

PMDバージョン: 7.0.0-rc4 Best Practices AvoidInlineStyles 公式ドキュメント: AvoidInlineStyles Since: PMD 6.45.0 Priority: Medium (3) Description: コンテンツとスタイルを混在させない。スタイルと導入クラスには別々のCSSファイル使用する。 …

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行目…

Eclipseに出てくるプロジェクトのエンコーディングの警告を抑制するには?(Gradle)

Spring Initializrで作成したJavaプロジェクトを最新のEclipse(2023-03)にインポートすると、 「プロジェクト 'java-project' はエンコーディングが明示的に設定されていません」という内容の警告が出てくる。 Eclipseが作成する設定ファイルに、エンコー…

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

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

PostgreSQLのシーケンス

DB

シーケンス作成 サンプル CREATE SEQUENCE sample INCREMENT BY 1 MAXVALUE 99999999 START WITH 1 NO CYCLE; CREATE SEQUENCEとパラメータの説明 CREATE SEQUENCE:新しいシーケンス番号ジェネレータを作成する。sampleの部分には作成したいシーケンスの名…

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の設定 区切り文字の設定 改行コードの設定 ヘッダやレコードの囲み文字の設定 ヘッダやレコードを全て…

JSONPathについて

JSONPath XML の利点としてよく強調されるのは、XML 文書を分析し、変換し、選択的にデータを抽出するための豊富なツールが利用可能であることであり、XPathはこのような強力なツールの一つ。 XPath4JSON 特別なスクリプトを作成することなく、クライアント…

TimerTriggerの作成(Spring Boot)

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