Javaカスタマイズの考え方
最終更新日: 2020年5月4日
R8 | R9
はじめに、カスタマイズ開発者向け基本ガイド(PDF)をお読みください。
Wagby はサーバサイド(Java)およびクライアント(HTML,JavaScript)いずれのコードも生成します。ここではサーバサイドの代表的なクラスを紹介します。
Controller,Service,Dao,Helperの関係を図2に示します。
Wagbyが自動生成したJavaソースコードをカスタマイズできます。推奨するカスタマイズ方法は Generation Gap パターンと呼ばれるものです。自動生成されたクラスを継承するカスタマイズクラスをご用意いただき、必要なメソッドをオーバーライドします。
図3の例では、自動生成されるCustomerHelperを継承したMyCustomerHelperを用意しています。このクラスをcustomizeフォルダに保存してビルドすると自動的に認識されます。アプリケーション内では、CustomerHelperではなくMyCustomerHelperのインスタンスが使われるようになります。
このアプローチによるカスタマイズの柔軟性は高く、ほとんどの処理をオーバーライドできます。
次のテーマは Wagby のライセンス認証に関わるため、カスタマイズできません。
シングルサインオンの対応を含む、認証・認可系のカスタマイズはジャスミンソフトによる個別対応を行います。詳細はお問い合わせください。
基本ガイド
生成されるコード
クラス
説明
Model
データを格納するクラス。業務ロジックは含まない。永続化・画面表示・一覧表示・検索条件格納といった目的に応じたModelクラスが用意される。
Controller
UIと業務ロジックを媒介するクラス。Spring MVC ベース。Wagbyが定義する画面機能に応じた基本的なControllerが用意されている。
Service
業務処理クラス。主にControllerから呼び出される。トランザクション境界となり、必要に応じて複数のDaoを呼び出す。トランザクション制御はSpring3の@Transactionalアノテーションを使う。
Dao
データアクセスクラス。一つのモデルに関するCRUD処理を一つのDaoが受け持つ。検索処理はSQLを書くのではなく、(Hibernate 4が提供する)CriteriaクエリAPIを用いる。
Helper
適切な初期化を伴うモデルクラスのインスタンス生成や計算、モデルの相互変換を行う。設計情報に記述されたさまざまなプロパティがコード化されたクラスになる。
Meta
モデルに関するメタ情報(項目名と型をはじめ、主キーはどの項目かといった情報)を管理する。
コードのカスタマイズ方針
カスタマイズできない部分