Java開発の概要
intra-mart Accel Platform には、業務ロジックを実装するための開発モデルが二つあります。 JavaScript でサーバサイドを書くスクリプト開発モデル(JSSP)と、Java で実装する JavaEE 開発モデル です。 本ガイドは後者を扱い、ユーザモジュールを Java で実装するときのクラスの分け方と、DBアクセス基盤 im_mirage の使い方を説明します。
対象読者
本ガイドは、次のような開発者を対象としています。
- JavaEE 開発モデルで iAP のユーザモジュールを実装したい
- Java からテーブルを読み書きする処理を、決められた作法に沿って書きたい
- 既存のモジュールを保守するにあたり、DAO や
SessionTemplateの意図を把握したい
前提条件
本ガイドを読み進めるには、次の条件を満たしている必要があります。
- iAP のモジュールの考え方を理解していること
- ローカル開発環境が構築され、モジュールプロジェクトを作成できる状態にあること
- Java と SQL の基礎的な知識があること
環境の構築手順は前提条件と必要なツール、プロジェクトの資材配置はモジュールプロジェクトの構成がそれぞれ扱っています。
ページ構成
| ページ | 扱う内容 |
|---|---|
| 全体アーキテクチャ | 四つのレイヤの構成、依存の向き、パッケージとクラスの命名、例外の階層 |
| 全レイヤ縦断の実装例 | DDL からエンドポイントまで、一つの API を構成するクラス一式 |
| プレゼンテーション層の実装ルール | エンドポイントの構成、認証と認可、リクエストとレスポンスの DTO、入力検証、例外から HTTP への変換、レスポンスの形式 |
| アプリケーション層の実装ルール | ユースケース、バッチジョブ、例外の変換 |
| ドメイン層の実装ルール | ドメインモデル、リポジトリとサービスのインタフェース、ファクトリ、例外クラス |
| インフラストラクチャ層の実装ルール | 実装クラス、トランザクション境界、例外の変換 |
| エンティティと DAO の作成 | テーブルとのマッピング、対応するカラム型、自動設定される監査項目、DAO の実装、SQLファイルの配置 |
| 2WaySQL | SQLファイルによる動的クエリ、IN句とループ、UPDATE 文の SET 句、DB方言ごとのファイル |
| トランザクション制御 | SessionTemplate による境界の設定、入れ子になった場合の挙動 |
| アンチパターン集 | レビューで繰り返し指摘されるレイヤ違反と、その修正 |
| 利用可能なスキル一覧 | レイヤ構成・サービス層・DBアクセスの型と、アカウント・ロール・認可・キャッシュ・IM-Workflow・IM-Copilot 等の intra-mart 固有 API を実装するためのスキル一覧 |
はじめての方は、全体アーキテクチャ で四つのレイヤの関係をつかみ、全レイヤ縦断の実装例 でクラスの並びを眺めてから、レイヤごとのページに進む順序をおすすめします。 実装ルールの四ページは外側から内側へ並んでいますが、担当する層のページだけを読んでもかまいません。 DBアクセスの実装だけを確認したい場合は、エンティティと DAO の作成 から読み始めても差し支えありません。
本ガイドで扱わないもの
次の内容は本ガイドの範囲外です。
- 画面の実装:業務画面の作成はチュートリアルで扱っています。
- スクリプト開発モデルのDBアクセス:JSSP では
TenantDatabaseとSharedDatabaseの API を使います。SQLの書き方も呼び出し方も Java 側とは別物であり、実装を流用することはできません。 - テーブル定義(DDL)の作成:本ガイドはエンティティと DAO の実装を対象とし、
CREATE TABLE文そのものの設計は扱いません。 - Web API Maker と認可の機能そのもの:エンドポイントをどの層に置き、何を担わせるかはプレゼンテーション層の実装ルールで扱います。API 公開の設定項目と認可リソースの登録手順は、それぞれの機能のドキュメントが扱います。