メインコンテンツまでスキップ

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ファイルの配置
2WaySQLSQLファイルによる動的クエリ、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 公開の設定項目と認可リソースの登録手順は、それぞれの機能のドキュメントが扱います。