Java
依存関係の追加 spring-boot-starter-validationの依存関係を追加する。 gradleを使用している場合、以下の記述をbuild.gradleに追加する。 // Hibernate Validator で Java Bean Validation を使用するためのスターター implementation 'org.springframewor…
ModelとModelAndViewの使い方 Controllerクラスのメソッドの引数について 画面と値をやりとりするのに、ModelもしくはModelAndViewを使用する。 参考:https://spring.pleiades.io/spring-framework/docs/5.3.10/reference/html/web.html#mvc-controller Mod…
OSSの追加方法(Java) Eclipseでツールを使わずにOSSを追加する OSSの使用するためには、使用したいOSSのjarファイルをクラスパスに追加する必要がある。 使用したいOSSのjarファイルをダウンロードする プロジェクトのルートにlibファイルを作成しそこにja…
SpringApplicationEventを使用することで実現可能。 Spring Bootがデフォルトで用意しているイベントには以下がある。 イベントクラス名 説明 ApplicationFailedEvent SpringApplicationの開始に失敗したときにSpringApplicationによって発行されるイベント…
サーブレットフィルターは、サーブレットやJSP(Springではコントローラー)において「共通の前後処理を記述するための仕組み」のことを指す。 javax.servlet.Filterを実装して作成する。 フィルタークラスの実装 Filterインターセプターには3つのメソッドが…
前回の記事でAzure Cosmos DB EmulatorにJavaから接続するための設定が完了したので、今回は実際にAzure Cosmos DB Emulatorを操作する処理を実装していく。 Azure Cosmos DB EmulatorにJavaから接続するための設定は以下の記事を参照 olafnosuke.hatenablog…
2記事に分けて、Java(Spring Boot)からAzure Cosmos DB Emulatorを操作する手順をまとめます 。 今回はJava側からEmulatorに接続するための準備段階の手順についてまとめていきます。 Azure Cosmos DB Emulatorのダウンロード 以下のサイトからダウンロー…
Doma2で楽観排他を実現する方法と更新失敗時の例外処理についてまとめる。 Domaの設定方法 エンティティクラスの楽観ロック用のバージョンカラムにあたるメンバ変数に@Versionを付与する。 @Entity @Table(name = "sample") @ToString @EqualsAndHashCode pu…
①ドメインクラスの定義 1. エンティティでマッピングに使用するクラスに@Domainアノテーションを付与する 2. アノテーションの属性factoryMethodでインスタンスを生成するためのメソッド名を指定する 3. アノテーションの属性accessorMethodでラップする値を…
Spring Bootで非同期処理を実装する方法を説明する。 非同期で実行したいメソッドを作成する Service実装クラスで、非同期で実行したいメソッドを実装する。 メソッドに@Asyncのアノテーションを付与する 属性値に非同期処理の設定のbean名を指定する メソッ…
@ConditionalOnProperty SpringBootが提供しているアノテーションで、ある特定のプロパティが指定の値かどうかチェックを行う。 チェック結果がtrueの場合、アノテーションを付与しているメソッドが実行され、bean登録される。 アノテーションの属性には以下…
MongoDBの導入手順は以下の記事に記述しています。 olafnosuke.hatenablog.com JavaでMongoDBを操作する(SpringBoot) 依存関係の追加 build.gradleにspring-boot-starter-data-mongodbの依存関係を追加する。 dependencies { implementation 'org.springfr…
SpringBootでモデルをセッションに格納する SpringBootでモデルやエンティティをセッションに格納する方法を説明する。 実装には@SessionAttributesアノテーションを用いる。 @SessionAttributesアノテーションを使用してセッションに格納したオブジェクトは…
Spring Bootで例外処理 エラーページの表示 spring bootでは、Thymeleafを使用している場合、デフォルトで例外発生時にはsrc/main/resources/template/error.htmlに遷移する。 上記のパスにファイルが存在しない場合は、springが準備したWhitelabel Error Pa…
ControllerAdviceとは? ControllerAdviceとは、エラー処理などをコントローラーの共通処理としてまとめて定義するためのものである。 @Controllerを付与したクラスには、Handlerメソッド(@RequestMappingを付与したメソッド)とは別に、Controller専用の特殊…
Interceptorとは? Interceptorは、画面処理の前後とリクエストの一番最後に呼び出される割り込み処理のこと。 Interceptorを使うとControllerの実行前後に処理を追加することができる。 実装する場合には、org.springframework.web.servlet.HandlerIntercep…
SpringFrameworkの特徴的な機能のひとつであるAOPについて書いていきます。 SpringFrameworkについての記事はこちら olafnosuke.hatenablog.com AOPとは? Aspect Oriented Programmingの略で、「アスペクト指向プログラミング」と呼ばれる。 AOPを使用する…
SpringFrameworkの特徴的な機能のひとつであるDIコンテナについて書いていきます。 SpringFrameworkについての記事はこちら olafnosuke.hatenablog.com DIコンテナとは SpringがJavaのインスタンスを管理している入れ物。 管理方法:key-value方式 例: samp…
Spring Frameworkとは アプリケーション開発を容易にすることを目的としたオープンソースのJavaアプリケーションフレームワークのこと。 多数のサブプロジェクトで、Webアプリケーション開発に必要な機能(リクエストマッピング、セッション管理、入力チェッ…
WireMock 公式HP 依存関係を追加する build.gradleに以下の記述を追加する。 dependencies { testImplementation 'com.github.tomakehurst:wiremock-jre8:2.31.0' } Junit5で使用する Junit5でWireMockを使用する方法として、declarativeとprogrammaticの2つ…
ログ出力内容確認テスト(Junit5) logunitを使用して検証する方法を説明する。 logunit(Github) 依存関係の追加 gradleを使用している場合は、build.gradleに以下の記述を追加する。 dependencies { testImplementation "io.github.netmikey.logunit:loguni…
Mock 1. Mockとは テストしたいクラスが依存しているブジェクトに代わって使用されるテスト用のオブジェクト。 テストに必要な部品の値を擬似的に設定するもの。 例えば、クラスAのテストをしようとしたときに以下のような時があったら使用する 現在日時を返…
Junit5の使い方 Junit5の書き方 org.junit.jupiterパッケージのアノテーションとクラスを使用する。 テストメソッド @Testを付与したメソッドは、テスト実施の対象となる。 import org.junit.jupiter.api.Test; class SampleTest { @Test public void sample…
正規表現 正規表現とは 様々な文字列を一つの文字列で表現する表記法 なぜ便利なのか 正規表現を利用すると様々な文字列を一つの文字列で表現できるため、文字列の検索や置換が便利になる。 例えば、以下の文字列は全て同じ正規表現で表すことができる。 app…
SQL Java標準の機能を使用したDBの処理 についてまとめる。 JDBCドライバのダウンロード DBの公式サイトからJDBCドライバをダウンロードして、クラスパスに配置する。 DBに接続する public void doSql(){ // ドライバーのダウンロード Class.forName("org.po…
java.util.Optionalクラス Optionalは値をラップし、その値がnullかもしれないことを表現するクラス。 Optionalオブジェクトの生成 メソッド 説明 Optional empty() null値を持つOptionalオブジェクトを返す Optional of() 非null値を持つOptionalオブジェク…
StreamAPI 配列やCollectionなどの集合体を扱う為のもので、値の集計やデータを使った処理などが出来るAPI 使い方の大まかな流れ 1. Streamを取得 主なStreamの種類 インターフェイス 説明 Stream<t> 要素がTのインスタンスのStream IntStream 要素がintの値のS</t>…
ラムダ式 関数型インターフェースを実装するための記述を簡潔に書ける →抽象メソッドを1つ持つインターフェース 基本形:インターフェース名 オブジェクト名 = (引数1, 引数2, ・・・) -> {処理 ; return 戻り値;}; ラムダ式記入例 // 関数インターフェース…
プロパティファイル プロパティファイルとは キーと値が対になったデータを保存しているファイル。 コンパイルなしでプログラムの動作を変更できるので後で変わる可能性のある値とか設定すると良い。 # コメント sample.id=abcde プロパティファイルの読み込…
ファイル入出力 1. ファイル入力 ファイル読み込みには以下の4種類のいずれかを使用する。 種類 説明 FileReader ファイルを1文字ずつ読み込む。Java11以降はエンコーディングを指定することができる。 BufferedReader FileReaderをラップするクラス。ファイ…