Java

Checkstyle チェック項目ーMiscellaneous

Checkstyleチェック項目:Miscellaneous CheckStyle公式ドキュメント ver 10.3.1 ArrayTypeStyle 配列の型定義のスタイルをチェックする。 JavaスタイルとCスタイルから選択可能。 Javaスタイル(デフォルト):public static void main(String args) Cスタ…

Checkstyle チェック項目ーMetrics

Checkstyleチェック項目:Metrics CheckStyle公式ドキュメント ver 10.3.1 BooleanExpressionComplexity 式中のboolean演算子(&&、 ||、 &、 |、 ^)の数を制限する。 プロパティ プロパティ 型 デフォルト値 説明 max int 3 1つの式で許可されるboolean演…

Checkstyle チェック項目ーJavadoc Comments

Checkstyleチェック項目:Javadoc Comments CheckStyle公式ドキュメント ver 10.3.1 AtclauseOrder JavadocブロックタグまたはJavadocタグの順序をチェックする。 プロパティ プロパティ 型 デフォルト値 説明 violateExecution OnNonTightHtml boolean fals…

Checkstyle チェック項目ーImports

Checkstyleチェック項目:Imports CheckStyle公式ドキュメント ver 10.3.1 AvoidStarImport *を使用するimport文がないことをチェックする。 プロパティ プロパティ 型 デフォルト値 説明 excludes String[] {} *を使用するインポートが許可されるパッケージ…

Checkstyle チェック項目ーHeaders

Checkstyleチェック項目:Headers CheckStyle公式ドキュメント ver 10.3.1 RegexpHeader ソースファイルのヘッダを、ソースヘッダの各行に対応するパターンを含むヘッダと照合してチェックする。 プロパティ プロパティ 型 デフォルト値 説明 headerFile URI…

Checkstyle チェック項目ーCoding

Checkstyleチェック項目:Coding CheckStyle公式ドキュメント ver 10.3.1 ArrayTrailingComma 配列の初期化時に、末尾にコンマが含まれているかどうかをチェックする。 デフォルトでは、配列の最後の要素と同じ行に左中括弧も右中括弧もない場合、最後にコン…

Checkstyle チェック項目ーClass Design

Checkstyleチェック項目:Class Design CheckStyle公式ドキュメント ver 10.3.1 DesignForExtension クラスが拡張(サブクラス作成)用に設計されているかどうかをチェックする。 このチェックでは、オーバーライド可能なメソッド (非static、非final、非abs…

Checkstyle チェック項目ーBlock Checks

Checkstyleチェック項目:Block Checks CheckStyle公式ドキュメント ver 10.3.1 AvoidNestedBlocks ネストされたブロック(コード内で自由に使用されているブロック)がないかどうかをチェックする。 プロパティ プロパティ 型 デフォルト値 説明 allowInSwi…

Checkstyle チェック項目ーAnnotation

Checkstyleチェック項目:Annotation CheckStyle公式ドキュメント ver 10.3.1 AnnotationLocation アノテーションの位置をチェックする。デフォルトでは以下の項目をチェックする。 アノテーションがコメントと対象要素の間に記述されていること アノテーシ…

Azure Cosmos DB EmulatorをJavaで操作する(実装編)

前回の記事でAzure Cosmos DB EmulatorにJavaから接続するための設定が完了したので、今回は実際にAzure Cosmos DB Emulatorを操作する処理を実装していく。 Azure Cosmos DB EmulatorにJavaから接続するための設定は以下の記事を参照 olafnosuke.hatenablog…

Azure Cosmos DB EmulatorをJavaで操作する(準備編)

2記事に分けて、Java(Spring Boot)からAzure Cosmos DB Emulatorを操作する手順をまとめます 。 今回はJava側からEmulatorに接続するための準備段階の手順についてまとめていきます。 Azure Cosmos DB Emulatorのダウンロード 以下のサイトからダウンロー…

Doma2で楽観排他

Doma2で楽観排他を実現する方法と更新失敗時の例外処理についてまとめる。 Domaの設定方法 エンティティクラスの楽観ロック用のバージョンカラムにあたるメンバ変数に@Versionを付与する。 @Entity @Table(name = "sample") @ToString @EqualsAndHashCode pu…

Doma2で任意のクラスにマッピングさせる

DomaのエンティティはデフォルトでInteger型やString型など基本型にマッピングされるが、ドメインクラスを定義することで、別のクラスにラッピングさせることができる。 doma-codegen-pluginで現状エンティティの自動生成でドメインクラスにマッピングするよ…

Spring Bootで非同期処理

Spring Bootで非同期処理を実装する方法を説明する。 非同期で実行したいメソッドを作成する Service実装クラスで、非同期で実行したいメソッドを実装する。 メソッドに@Asyncのアノテーションを付与する 属性値に非同期処理の設定のbean名を指定する メソッ…

プロパティの有無/値によってBean登録するクラスを切り替える(Spring Boot)

@ConditionalOnProperty SpringBootが提供しているアノテーションで、ある特定のプロパティが指定の値かどうかチェックを行う。 チェック結果がtrueの場合、アノテーションを付与しているメソッドが実行され、bean登録される。 アノテーションの属性には以下…

JavaでMongoDBを操作する(SpringBoot)

MongoDBの導入手順は以下の記事に記述しています。 olafnosuke.hatenablog.com JavaでMongoDBを操作する(SpringBoot) 依存関係の追加 build.gradleにspring-boot-starter-data-mongodbの依存関係を追加する。 dependencies { implementation 'org.springfr…

SpringBootでモデルをセッションに格納する

SpringBootでモデルをセッションに格納する SpringBootでモデルやエンティティをセッションに格納する方法を説明する。 実装には@SessionAttributesアノテーションを用いる。 @SessionAttributesアノテーションを使用してセッションに格納したオブジェクトは…

Spring Bootで例外処理

Spring Bootで例外処理 エラーページの表示 spring bootでは、Thymeleafを使用している場合、デフォルトで例外発生時にはsrc/main/resources/template/error.htmlに遷移する。 上記のパスにファイルが存在しない場合は、springが準備したWhitelabel Error Pa…

SpringBootーControllerAdvice

ControllerAdviceとは? ControllerAdviceとは、エラー処理などをコントローラーの共通処理としてまとめて定義するためのものである。 @Controllerを付与したクラスには、Handlerメソッド(@RequestMappingを付与したメソッド)とは別に、Controller専用の特殊…

SpringでInterceptorを利用する(SpringBoot)

Interceptorとは? Interceptorは、画面処理の前後とリクエストの一番最後に呼び出される割り込み処理のこと。 Interceptorを使うとControllerの実行前後に処理を追加することができる。 実装する場合には、org.springframework.web.servlet.HandlerIntercep…

SpringFrameworkーAOPとは?

SpringFrameworkの特徴的な機能のひとつであるAOPについて書いていきます。 SpringFrameworkについての記事はこちら olafnosuke.hatenablog.com AOPとは? Aspect Oriented Programmingの略で、「アスペクト指向プログラミング」と呼ばれる。 AOPを使用する…

SpringFrameworkーDIとは?

SpringFrameworkの特徴的な機能のひとつであるDIコンテナについて書いていきます。 SpringFrameworkについての記事はこちら olafnosuke.hatenablog.com DIコンテナとは SpringがJavaのインスタンスを管理している入れ物。 管理方法:key-value方式 例: samp…

Spring Frameworkとは

Spring Frameworkとは アプリケーション開発を容易にすることを目的としたオープンソースのJavaアプリケーションフレームワークのこと。 多数のサブプロジェクトで、Webアプリケーション開発に必要な機能(リクエストマッピング、セッション管理、入力チェッ…

APIをモック化する(Wiremock)

WireMock 公式HP 依存関係を追加する build.gradleに以下の記述を追加する。 dependencies { testImplementation 'com.github.tomakehurst:wiremock-jre8:2.31.0' } Junit5で使用する Junit5でWireMockを使用する方法として、declarativeとprogrammaticの2つ…

ログ出力内容確認テスト(Junit5)

ログ出力内容確認テスト(Junit5) logunitを使用して検証する方法を説明する。 logunit(Github) 依存関係の追加 gradleを使用している場合は、build.gradleに以下の記述を追加する。 dependencies { testImplementation "io.github.netmikey.logunit:loguni…

Junitでのモック定義(Mockito)

Mock 1. Mockとは テストしたいクラスが依存しているブジェクトに代わって使用されるテスト用のオブジェクト。 テストに必要な部品の値を擬似的に設定するもの。 例えば、クラスAのテストをしようとしたときに以下のような時があったら使用する 現在日時を返…

Junit5の使い方

Junit5の使い方 Junit5の書き方 org.junit.jupiterパッケージのアノテーションとクラスを使用する。 テストメソッド @Testを付与したメソッドは、テスト実施の対象となる。 import org.junit.jupiter.api.Test; class SampleTest { @Test public void sample…

Javaで正規表現チェック

正規表現 正規表現とは 様々な文字列を一つの文字列で表現する表記法 なぜ便利なのか 正規表現を利用すると様々な文字列を一つの文字列で表現できるため、文字列の検索や置換が便利になる。 例えば、以下の文字列は全て同じ正規表現で表すことができる。 app…

Java基礎ーSQL

SQL Java標準の機能を使用したDBの処理 についてまとめる。 JDBCドライバのダウンロード DBの公式サイトからJDBCドライバをダウンロードして、クラスパスに配置する。 DBに接続する public void doSql(){ // ドライバーのダウンロード Class.forName("org.po…

Java基礎ーOptional

java.util.Optionalクラス Optionalは値をラップし、その値がnullかもしれないことを表現するクラス。 Optionalオブジェクトの生成 メソッド 説明 Optional empty() null値を持つOptionalオブジェクトを返す Optional of() 非null値を持つOptionalオブジェク…