実装方針 ================================================================================ .. only:: html .. contents:: 目次 :depth: 3 :local: 本ガイドラインにおけるアプリケーション実装方針 -------------------------------------------------------------------------------- 本ガイドラインで紹介するサンプルコードに関する実装方針について説明する。 |base_framework_name| 開発ガイドラインの踏襲 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 本ガイドラインでは、|base_framework_name| 開発ガイドラインで説明されているノウハウを踏襲するため、以下の方針でサンプルコードを記載している。 .. _usexmlconfig: XMLConfigの利用 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" フレームワークの拡張などで作成したAP基盤関連クラスのBean定義を行う際はXML Configを使用してBean定義ファイルによる集中管理を行う。 \ ``ComponentScan``\ によるBean定義は行わない。 .. note:: 業務開発者が作成した\ ``Service``\ クラスなどは\ ``ComponentScan``\ を使用しても良い。 また、Java ConfigによるBean定義を極力行わない。 AutoConfigの利用方針 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Spring Bootの機能であるAutoConfigについては以下の方針で利用している。 * Spring Cloudなどのアプリケーションをクラウドネイティブとするため、 |base_framework_name| で使用しているライブラリに加えて新規に導入するライブラリに関するBean定義についてはAutoConfigを利用する * |base_framework_name| で使用しているライブラリに関するBean定義についてはXMLConfigを利用する インジェクションに使用するアノテーション """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 本ガイドラインでは、\ ``@Inject``\ を使用してインジェクションを行う。\ ``@Autowired``\ は使用しない。 デプロイ可能warファイルの作成 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 本ガイドラインでは、Spring Bootの組み込みTomcatを使用せず、\ ``SpringBootServletInitializer``\ を使用してデプロイ可能warファイルを作成する方針とする。 また、Servlet関連の定義はSpring BootのJavaConfigを使用せず、web.xmlに記載する。 .. warning:: 組み込みTomcatを使用しないことで、 |base_framework_name| の機能に制約が生じる。 制約の内容については、:ref:`create_project_constrait_embeddedtomcat` を参照されたい。 プロパティの設定形式について ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 本ガイドラインでは、プロパティの設定形式について以下の方針としている。 * フレームワークの設定・拡張などを行うAP基盤開発者が編集するファイルについてはYAML形式を使用する * 業務アプリケーションの開発者が編集するファイルについてはproperties形式で使用する .. note:: フレームワークの設定を行う場合、`Spring Tool Suite `_ を使用してYAML形式のキーの入力補完が可能であるため、作業効率を考慮してYAML形式を採用している。 また、直感的な記載が可能であることから業務開発者向けの設定はproperties形式とした。 .. raw:: latex \newpage