わいるどふらい(WildFly)って何?から学ぶEJB
- WildFlyは、オープンソースJavaEEアプリケーションサーバです。
- EJBは、JavaEEに既定されているサーバサイド向けのJavaBeansです。
WildFlyは、オープンソースJavaEEアプリケーションサーバです。
WildFlyは、Javaで記述されたサーバサイドアプリケーションを動作させるための基盤を提供します。
www.ossnews.jp
JBoss Application Serverから改名しました。
WildFly(ワイルドフライ)とは、JBoss AS(コミュニティ版)とJBoss EAP(エンタープライズ版)との混同を避けるため2014年4月にJBoss ASが改名された名称です。
その為、名称が変更されたのみとなっており、開発コミュニティ(オープンソースプロジェクト)やソフトウェア自体などJBoss ASと変わりません。
www.ossplaza.com
JBoss Application Server は1999年にEnterprise JavaBeansコンテナとして開発をされたJ2EEアプリケーションサーバです。
www.ossplaza.com
Tomcatとの違いはEJBが使えることです。
同様なサーバサイドプラットフォームとして「Tomcat」があります。
「Tomcat」はJSP/Servletを処理するアプリケーションサーバです。
「WildFly」は、TomcatをWebコンテナとして搭載しています。そのため、EJBとJSP/Servletの両方を処理できます。
www.ossnews.jp
Tomcatで提供される機能は基本的にServlet, JSP, JDBC接続プールのみで、他のものは提供されていません。シンプルですが、他のものが必要になったときに、それらをインテグレーションするコストが発生するなど、少し面倒なことになります。
TomcatになくてJBossにあるものを軽く列挙してみます。Java EEなもの
・JTAトランザクションマネージャ
・EJB
・MDB
・JPA
・JMS
・JCA
・JAX-WS
JBoss固有なもの
・JMX
・log4jを用いたログ基盤
・分散キャッシュなどの各種クラスタリングサービス
nekop.hatenablog.com
EJBは、JavaEEに既定されているサーバサイド向けのJavaBeansです。
- 正式名称:Enterprise JavaBeans
EJBを利用したシステムの開発者は必要な機能を「Bean」(ビーン)と呼ばれるJavaクラスとして開発していき、これを繋ぎ合わせてアプリケーションを構築する。BeanはEJBの仕様に準拠したアプリケーションサーバに組み込まれて実行される。サーバ側でトランザクション処理やDI(Dependency Injection:依存性注入)、セキュリティ制御などの諸機能を提供してくれるため、Beanの開発者はこれらに個別に対応する必要はなく、自らのビジネスロジックの記述に集中できる。
e-words.jp
まず、JavaBeansはJavaで書かれた再利用可能なソフトウェアコンポーネントのことです。
Java Beansはプログラムの再利用を目的としており、汎用的なロジックで構成されているクラスである。Javaで作成された移植可能なプラットフォームに依存しないコンポーネント・モデルで、JavaBean仕様に従う。 サーバーサイド向けのJavaBeansはEnterprise JavaBeansと呼ばれている。
JavaBeans - Wikipedia
JavaBeansは、Sun Microsystems社のJavaBeans仕様に準拠した再使用可能なソフトウェア・コンポーネントです。JavaBeans仕様は、JavaBeanとなる一式のJavaクラスによって実装されるインタフェースおよびパッケージングの詳細を規定します。 開発者は、JavaBeansをプログラムを使用して組み合せるか、Oracle JDeveloperなどのビジュアル・プログラミング環境を使用してアプリケーションを作成できます。
http://otndnld.oracle.co.jp/tech/java/htdocs/java_roadmap/javabean/listing.htm
技術的な仕様のことを指してJavaBeansということもあります。
Javaで作成された移植可能なプラットフォームに依存しないコンポーネント・モデルで、JavaBean仕様に従う。 再使用可能なコンポーネントを作成できる。
http://otndnld.oracle.co.jp/tech/java/htdocs/java_roadmap/glossary.htm#434709
JavaBeansの特徴
①プロパティ
JavaBeansは、「プロパティ」と呼ばれるものをもつJavaクラスです。あるBeanが持つ「属性」を「プロパティ」と考えることができます。
Javaのクラスでは、クラスの属性は、クラス中のフィールドで表現されると考えられます。ところが、あるBeanが持つプロパティは、クラスのフィールドとは関係ありません。ある特定のネーミング・ルールに従ったメソッドの存在が、そのBeanのプロパティを決めているのです。
JavaBeansのネーミング・ルールでは、あるBeanに次のようなメソッドがあるとき、そのBeanにはtitleというプロパティが存在することになります。
String getTitle ( ) ;
void setTitle ( String title);
- ネーミング・ルール
- setter、getter:プロパティ名の先頭の文字を大文字にして、"set"や"get"の文字を加える
- setter名 = "set" + ( プロパティ名 )'
- getter名 = "get" + ( プロパティ名 )'
- プロパティ名:setter名やgetter名から、先頭の"set"、"get"を取り除いた文字列
- プロパティ名 = ( setter名から、先頭の"set"を取り除いたもの ) = ( getter名から、先頭の"get"を取り除いたもの )
- setter、getter:プロパティ名の先頭の文字を大文字にして、"set"や"get"の文字を加える
② 永続化
Beanは、必要に応じてオブジェクトの状態を保存したり、復元したりすることができなければいけません。このことを、Beanを「永続化」する、といいます。このためには、Beanにjava.io.Serializableインタフェースを実装する必要があります。このインタフェースにはメソッドは定義されていないので、次のように定義するだけで構いません。
import java . io . Serializable; public class HogeBean implements Serializable { ..... }
Beanの種類
Session Bean:セッションを保持し、一時的なロジックを保存するオブジェクト
ビジネスロジックを実装するためのEnterprise Bean
- Stateful Session Bean:クライアントごとの状態を保持するセッションBean
- Stateless Session Bean:クライアントごとの状態を保持しないセッションBean
- Singleton Session Bean:常に同じインスタンスへのアクセスが保証されているシングルトンなセッションBean