今まで利用したことのあるフレームワークといえば、WACs、Struts2、TERASOLUNA(5.x)でした。
JSF(JavaServer Faces)は初めて触るので、学習のため、記事にしようと思います。
目標はアーキを理解しつつ、画面-ロジック-DBまでの連携を実装できる事にしたいな。
記事のリンクだけでも参照したい為、執筆途中で公開する事をお許しくださいませ。
用語の理解(整理未済)
Java EE(Java Platform, Enterprise Edition)
● Java EEとはJava SEの拡張機能で、Javaで実装されたアプリケーションサーバーの標準規格及びそのAPIを定めたものだそうです。歴史が複雑なので自分なりの理解を図にしました。ちなみにJSF(JavaServer Faces)はJava EEの仕様として定義されており、JavaEE5から登場します。
NetBeans NetBeans 日本語サイト (8.2~メンテなし)
● NetBeansはSun Microsystemsと契約(1999)し、Java Beansコンポーネント開発用のIDEとして開発されていたが、SunがOracleが買収され(2010/1)、JDeveloperの競合製品の立場になってしまってます。その後Apacheソフトウェア財団に寄贈され(2016)当初はApache Incubatorであったが、ようやくApache Software Foundationとして開発されるようになってます(2019)。JavaEEとともにOracleに属していた時は不遇な状況を過ごしてきたみたいです。
JavaServer Faces(JSF)
● JSFとはMVCモデルをベースに作られたコンポーネントベース型のJavaEE純正のWebアプリケーションフレームワークです。JSF2.0(JSR314)がメジャーリリースされ(2009.6)、JavaEE6のAPI仕様として包含されるようになっています。そのあとJSF2.2(JSR344)がJavaEE7のAPI仕様、JSF2.3(JSR372)がJavaEE8のAPI仕様として構成されるようになりました。Seasar2やStrutsなどのアクションベースとJSFのコンポーネントベースのFWでは処理の流れが違うので慣れが必要です。コンポーネントベースというと今どきのVue.js,React.jsのように流行ってもよさそうなのですが、先にStruts,Springが流行ったのであまり日の目を見なかったのでしょうか(メガドライブみたいなものかしら)。
EclipseLink(ORM)
● ORM(O/R マッピング)とはオブジェクト指向プログラミング言語がリレーショナルデータベースのデータをオブジェクトとして自動変換する手法である。Java Persistence API(JPA)はJavaにおけるO/Rマッピングの仕様であり、JPA 2.0(JSR317)がJavaEE6と同日にリリース(2009.12)、JPA 2.1(JSR 338)がその後リリースされ(2013.4)今に至ります。なお、このJSRのリファレンス実装がeclopselinkやGlassFish v3(JSR317のみ)です。
JSFにおけるライフサイクル概要図
- 別記事の予定
初めの一歩
①NetBeansのインストールについて
こちらが分かりやすいです。
-【手順】NetBeans8.2のダウンロード・インストール手順を解説【Windows編】
日本語版IDE_Ver8.2_Last updated September 23, 2016
英語版IDE_Ver12.1_released on September 1, 2020
簡単なサンプル画面
- 別記事の予定
検証項目
- 別記事の予定 サーブレットやStrutsとの違い
こちらの記事を参考にさせていただきました。有難うございました。
[・【もうハマらない!】JSFをきちんと理解しよう。]
(https://qiita.com/3san-yamagami3/items/1b9d7d98c6476d5b1508)
[・JSF2.0の考え方]
(https://yoshio3.com/2012/08/24/detail-of-jsf20/)
[・Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ]
(https://qiita.com/disc99/items/727b51dbe737602a5c91)
[・JavaServer Faces入門]
(http://dream.mods.jp/wp/2016/11/01/jsf2-2%E5%85%A5%E9%96%80-%E7%AC%AC1%E5%9B%9Ejsf%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%8B/)
・JavaEE使い方メモ(基本+環境構築)
・Java EEとは?