5-1-応 開発フレームワークに関する知識
独立行政法人 情報処理推進機構
5-1-応 開発フレームワークに関する知識
Ⅰ.概要 開発フレームワークを利用した Web アプリケーションの実装方法を理 解する。MVC や OR マッピング、DIxAOP といった技術を理解する。 Ⅱ.対象専門分野 職種共通 Ⅲ.受講対象者、 受講前提 本カリキュラムの「5-1-基 開発フレームワークに関する知識」を受講 済みであること。または、同等の知識を有すること。 Ⅳ.学習目標 • 開発フレームワークを用いた Web アプリケーション開発手法を理 解する。 • MVC フレームワークの概念を理解する。 • OR マッピングや DIxAOP を用いた Web アプリケーションの実装方 法を理解する。 Ⅴ.使用教科書、 教材等 『オープンソースフレームワーク Struts による Web アプリケーション開発 カンタン Struts1.2 改訂版』 カサレアル、石井真、阿島哲夫著、秀和システム刊 『はじめての Java フレームワーク』 岡田賢治著、秀和システム刊 『Eclipse3 ではじめる Java フレームワーク入門』 掌田津耶乃著、秀和システム刊『Java J2EE オープンソース Spring 入門』
長谷川裕一、伊藤清人、岩永寿来、大野渉著、技術評論社刊 『実践 Spring Framework J2EE 開発を変える DI コンテナのすべて』
河村嘉之、首藤智大、竹内祐介、吉尾真祐著、日経 BP 社刊 その他、オリジナル教材を作成するものとする。 Ⅵ.習得スキル の評価方法 講義終了後の受講レポート、定量アンケート、知識確認ミニテスト、 演習問題の取り組み状況を総合的に判断して評価を行う。 Ⅶ.カリキュラム の構成 レベル 3(応用) 第 1 回~第 10 回 独立行政法人 情報処理推進機構
2
講座内容
第1回 統合開発環境を使用した開発の概要(講義+ワークショップ 90 分)
開発に統合開発環境を用いることで得られる利点について理解する。また、プラグインによる拡張性の高さ と、個々のプラグインの特徴について学習する。 (1) 統合開発環境(IDE)とは (2) StrutsIDE 1 概要と特徴 2 導入 (3) Hibernate Tools 1 概要と特徴 2 導入 (4) SpringIDE 1 概要と特徴 2 導入 (5) その他のプラグイン 1 環境に応じたプラグイン導入のすすめ 独立行政法人 情報処理推進機構3
第2回 MVC フレームワークの実習・1(コントローラの設定)
(講義+ワークショップ 90 分)
Struts におけるコントローラの役割について理解し、設定ファイルへの具体的な実装方法を習得する。 (1) Struts の構造 1 処理の流れについて 2 ActionServlet 3 RequestProcessor 4 ActionForm 5 ActionMapping 6 Action (2) Struts 設定ファイル(struts-config.xml) 1 主要なタグ • <controller> • <global-mappings> • <form-beans> • <mesage-resources> 2 サンプル設定ファイル (3) サンプルプログラム 1 基本的な設定ファイル 2 単純なビュー 3 単純なモデル 独立行政法人 情報処理推進機構4
第3回 MVC フレームワークの実習・2(モデルの実装)(講義+ワークショップ 90 分)
Struts におけるモデルの役割を果たすアクションについて理解し、サンプルプログラムを通して具体的な実 装方法を習得する。 (1) JavaBeans 1 JavaBeans とは 2 Bean の条件 • public で引数のないコンストラクタ • getter/setter メソッド (2) アクション 1 アクションとは 2 Action クラス 3 ビジネスロジック(execute メソッド) (3) アクションフォーム 1 アクションフォームとは 2 ActionForm クラス (4) バリデーション 1 バリデーション(検証)とは 2 Struts 設定ファイルの設定 3 ValidatorForm クラス 4 Validator 設定ファイル (5) サンプルプログラム 独立行政法人 情報処理推進機構5
第4回 MVC フレームワークの実習・3(ビューの実装)(講義+ワークショップ 90 分)
Struts を利用したアプリケーションで、ビューに一般的に使用される JSP について学習する。また、サンプル プログラムを通して、Struts のカスタムタグライブラリを利用した具体的な実装方法を習得する。 (1) JSP 1 JSP の概要 2 ディレクティブ 3 スクリプトレット、宣言、式 4 サンプルプログラム (2) Struts のカスタムタグライブラリ 1 web.xml の設定(<taglib>) 2 jsp ファイルの設定(taglib ディレクトリ) 3 bean タグライブラリ(HTTP ヘッダ、Cookie、リクエストパラメータ、など) 4 html タグライブラリ(<form>、<a>、エラーメッセージ、など) 5 logic タグライブラリ(条件分岐、繰り返し処理、など) (3) JSP と ActionForm との連携 (4) サンプルプログラム第5回 MVC フレームワークの実習・4(まとめ)(講義+ワークショップ 90 分)
Struts を利用した Web アプリケーション開発の実習を振り返り、モデル、ビュー、コントローラそれぞれの連 携について確認する。 (1) MVC について 1 モデルの役割 2 ビューの役割 3 コントローラの役割 4 モデル、ビュー、コントローラの連携 5 サービス指向(ビジネスロジックをどこで担当するのか?) (2) MVC フレームワークを利用すること 1 利用しない場合との比較 独立行政法人 情報処理推進機構6
第6回 OR マッピングの実習・1(SQL の OR マッピングへの置き換え)
(講義+ワークショップ 90 分)
Hibernate を利用した OR マッピングについて特徴や利点を学習する。サンプルプログラムを通じて具体的な 実装方法を習得する。 (1) Hibernate と DB の連携 1 Hibernate 設定ファイル(hibernate.cfg.xml) 2 マッピングファイル 3 永続化クラス(JavaBeans、@Table、@Column) (2) DB への問合せ 1 セッション 2 トランザクション(開始、コミット) 3 検索 • HQL • Criteria 4 更新 5 削除 (3) サンプルプログラム第7回 OR マッピングの実習・2(まとめ)(講義+ワークショップ 90 分)
DB アクセスを含むアプリケーションの開発を振り返り、OR マッピングを利用することの利点を確認する。 (1) DB アクセスの手段 1 OR マッピングを使用する • SQL 文を書く • SQL 文を書かない 2 OR マッピングを使用しない • SQL 文をコード中に直書き • SQL 文を外から取得 (2) OR マッピングの利点と欠点 1 開発速度は? 2 パフォーマンスチューニングの行いやすさは? 3 不具合の混入しやすさは? 4 SQL インジェクション対策など、セキュリティ面は? 独立行政法人 情報処理推進機構7
第8回 DIxAOP を使用した依存性の排除・1(DI コンテナの実装)
(講義+ワークショップ 90 分)
Spring を用いた DI コンテナについて学習する。また、サンプルプログラムを通して Struts との連携について 習得する。 (1) Spring による DI 1 ステレオタイプアノテーション 2 @Resource、@Autowired 3 サンプルプログラム (2) Spring と Struts の連携 1 連携による利点 2 ActionSupport クラスを利用する方法 3 DelegatingActionProxy クラスを利用する方法 4 DelegatingRequestProcessor クラスを利用する方法 5 AutowiringRequestProcessor クラスを利用する方法 6 サンプルプログラム第9回 DIxAOP を使用した依存性の排除・2(AOP の実装)
(講義+ワークショップ 90 分)
Spring における AOP 処理について学習する。サンプルプログラムを通して、具体的な実装方法を習得す る。 (1) Spring による AOP 1 @Aspect 2 @Pointcut 3 Advice • 処理実行のタイミング(@Around、@Before、@After、@AfterReturing、@AfterThrowing) (2) AOP を利用したロギング 1 サンプルプログラム 独立行政法人 情報処理推進機構8
独立行政法人 情報処理推進機構
9
第10回 DIxAOP を使用した依存性の排除・3(DI と AOP)(講義+ワークショップ 90 分)
Spring と Hibernate の連携について学習する。サンプルプログラムを通して宣言的トランザクションの使い方 を習得する。 (1) Spring と Hibernate の連携 1 HibernateDaoSupport クラス 2 HibernateTemplate クラス (2) 宣言的トランザクション管理 1 @Transactional • readOnly 属性 • propagation 属性 2 サンプルプログラム