Swaggerファイルでモックサーバ起動

Swaggerファイルを使用してモックサーバを起動する方法をまとめる。 モックサーバーには prism を使用する。 prism(Github) 仕様書作成準備 作成したAPI仕様書を管理するためのディレクトリを作成し、npm initコマンドを実行する。 以下は作成されたpackage.…

ソースコードのフォーマットチェック(Gradle Plugin)

spotless plugin ソースコードなどのフォーマットチェックおよびフォーマッットを行うタスクを提供するプラグイン Github 以下の言語のフォーマットに対応している Java (google-java-format, eclipse jdt, clang-format, prettier, palantir-java-format) G…

jsファイルとcssファイルをminifyする(Gradle Plugin)

gradle minify plugin https://github.com/gradle-webtools/gradle-minify-plugin 依存関係の追加 build.gradleにプラグインを追加する。 plugins { id("org.gradlewebtools.minify") version "1.3.1" } プラグインの設定 オプションはかなり多く存在してい…

Doma2で楽観排他

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

エンティティの型を変更する方法(Doma2)

①ドメインクラスの定義 1. エンティティでマッピングに使用するクラスに@Domainアノテーションを付与する 2. アノテーションの属性factoryMethodでインスタンスを生成するためのメソッド名を指定する 3. アノテーションの属性accessorMethodでラップする値を…

Spring Bootで非同期処理

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

Azure Functionsプロジェクトの作成方法

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

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

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

Swaggerファイルの分割・統合

APIがいっぱいあって、1つのSwaggerファイルに全部を書きたくないときのためのメモ。 複数ファイルへの分割 サンプルとして、以下のファイルを複数ファイルに分割する。 openapi: '3.0.0' info: title: サンプルAPI description: API仕様サンプル用 termsOfS…

DBマイグレーションツール FlyWay の使い方(Gradle Plugin)

参考サイト:FlyWay公式 Gradle Pluginの定義追加 FlyWayを使用したいプロジェクトの build.gradle に以下の設定を記述する。 buildscript { repositories { mavenCentral() } dependencies { // 使用するDBのJDBCドライバをクラスパスに設定する classpath …

SwaggerファイルをHTML出力する

API仕様書記述方法の中でもメジャーであるSwaggerについて、静的HTML出力する方法のメモ。 HTMLの出力ツールとして redoc-cli を使用する。 redoc-cli(Github) 仕様書作成準備 作成したAPI仕様書を管理するためのディレクトリを作成し、npm initコマンドを実…

Prisma + Typescript の実装サンプル

Prisma + Typescript の実装サンプル 〇サンプルに使用するテーブル CREATE TABLE shopping_items ( id bigint IDENTITY(1,1) NOT NULL, name varchar(40) COLLATE Japanese_CI_AS NOT NULL, price int NOT NULL, suryo int NULL, description varchar(100) …

TypeORM + Typescript の実装サンプル

TypeORM + Typescript の実装サンプル 〇サンプルに使用するテーブル CREATE TABLE shopping_items ( id bigint IDENTITY(1,1) NOT NULL, name varchar(40) COLLATE Japanese_CI_AS NOT NULL, price int NOT NULL, suryo int NULL, description varchar(100)…

Sequelize + Typescript の実装サンプル

Sequelize + Typescript の実装サンプル 〇サンプルに使用するテーブル CREATE TABLE shopping_items ( id bigint IDENTITY(1,1) NOT NULL, name varchar(40) COLLATE Japanese_CI_AS NOT NULL, price int NOT NULL, suryo int NULL, description varchar(10…

JavaでMongoDBを操作する(SpringBoot)

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

mssql + Typescript の実装サンプル

mssqlを使用したDB接続実装サンプル 〇サンプルに使用するテーブル CREATE TABLE shopping_items ( id bigint IDENTITY(1,1) NOT NULL, name varchar(40) COLLATE Japanese_CI_AS NOT NULL, price int NOT NULL, suryo int NULL, description varchar(100) C…

tedious + Typescript の実装サンプル

tediousを使用したDB接続実装サンプル 〇サンプルに使用するテーブル CREATE TABLE shopping_items ( id bigint IDENTITY(1,1) NOT NULL, name varchar(40) COLLATE Japanese_CI_AS NOT NULL, price int NOT NULL, suryo int NULL, description varchar(100)…

Gitリポジトリの分割手順

Gitリポジトリの分割 履歴を保持したまま特定のフォルダを新しいリポジトリに分割する方法のメモ。 1. 分割したいプロジェクトをclone git clone リポジトリURL 2. コマンドプロンプトを起動して、クローンしたプロジェクトのルートに移動する 3. 別リポジト…

MongoDB導入手順メモ

MongoDB導入 ダウンロードとインストール 以下のページを参考にMongoDBをインストールする。 MongoDBのダウンロード・インストール(Windows10) 起動 > mongo >mongo MongoDB shell version v5.0.9 connecting to: mongodb://127.0.0.1:27017/?compressors=…

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

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

Spring Bootで例外処理

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

PMD Javaルール ver 6.35.0 ⇒ 6.47.0 差分

PMD

PMD Javaルール ver 6.35.0⇒6.47.0 これまでまとめてきたPMDルールは6.35.0のものだったので 6.35.0から今の最新の6.47.0までのJavaルールの差分についてまとめます。 ver 6.36.0(2021-06-26) ルール名の変更 カテゴリ 変更前ルール名 変更後ルール名 Erro…

PMD Javaルール Securityカテゴリ

PMD

PMDのJavaルールについてまとめます。バージョン6.35.0時のルールとなっています。 非推奨となっているルールには「△」を先頭に付与しています。 バージョン6.35.0から6.47.0までのルールの差分については別の記事でまとめています。 olafnosuke.hatenablog.…

PMD Javaルール Performanceカテゴリ

PMD

PMDのJavaルールについてまとめます。バージョン6.35.0時のルールとなっています。 非推奨となっているルールには「△」を先頭に付与しています。 バージョン6.35.0から6.47.0までのルールの差分については別の記事でまとめています。 olafnosuke.hatenablog.…

PMD Javaルール Multithreadingカテゴリ

PMD

PMDのJavaルールについてまとめます。バージョン6.35.0時のルールとなっています。 非推奨となっているルールには「△」を先頭に付与しています。 バージョン6.35.0から6.47.0までのルールの差分については別の記事でまとめています。 olafnosuke.hatenablog.…

PMD Javaルール Error Prone

PMD

PMDのJavaルールについてまとめます。バージョン6.35.0時のルールとなっています。 非推奨となっているルールには「△」を先頭に付与しています。 バージョン6.35.0から6.47.0までのルールの差分については別の記事でまとめています。 olafnosuke.hatenablog.…

PMD Javaルール Documentation

PMD

PMDのJavaルールについてまとめます。バージョン6.35.0時のルールとなっています。 非推奨となっているルールには「△」を先頭に付与しています。 バージョン6.35.0から6.47.0までのルールの差分については別の記事でまとめています。 olafnosuke.hatenablog.…

PMD Javaルール Design

PMD

PMDのJavaルールについてまとめます。バージョン6.35.0時のルールとなっています。 非推奨となっているルールには「△」を先頭に付与しています。 バージョン6.35.0から6.47.0までのルールの差分については別の記事でまとめています。 olafnosuke.hatenablog.…

PMD Javaルール Code Style

PMD

PMDのJavaルールについてまとめます。バージョン6.35.0時のルールとなっています。 非推奨となっているルールには「△」を先頭に付与しています。 バージョン6.35.0から6.47.0までのルールの差分については別の記事でまとめています。 olafnosuke.hatenablog.…

PMD Javaルール Best Practices

PMD

PMDのJavaルールについてまとめます。バージョン6.35.0時のルールとなっています。 非推奨となっているルールには「△」を先頭に付与しています。 バージョン6.35.0から6.47.0までのルールの差分については別の記事でまとめています。 olafnosuke.hatenablog.…