2011-12-25 80 views
16

私はJSPとサーバーサイドのプログラミングには初めてです。これまではサーブレットとJavaクラスを扱っています。私はJavaクラスの助けを借りて(MVCモデルによると)私のアプリケーションを分離しています。私はJava BeanとJavaクラスの違いを知りたい。そして、どのシナリオで私はJavaクラスの代わりにJava Beanを使用することができます。役に立つ説明や役に立つリンクはありますか?Java BeanとJavaクラスの違いは?

答えて

27

AのJava Beanは、いくつかの規則に準拠だけクラスである:(これらのプロパティは読み取り専用でない場合とセッター)ゲッターによってアクセスすることができる

  • 特性
  • 引数なしのパブリックコンストラクタ
  • 、シリアライズ

JSP ELとタグは、これらの規則を中心に設計されています。それらの大部分は、これらの慣習をすべて尊重する必要はありません。ゲッターが利用できるプロパティは、これらの規則の中で最も重要です。たとえば、式

${foo.bar.name} 

は、foo beanのバーの名前を表示します。 fooは、ページ、リクエスト、セッション、またはアプリケーションのコンテキスト内になければならないBeanです。そして、この式はこのBeanでgetBar()を呼び出し、getBar()によって戻されたオブジェクト上のgetName()を呼び出します。

+0

シノニムを実装してBeanとみなす必要がありますか? – Wronski

+2

@Wronskiを厳密に定義しています(yes:https://docs.oracle.com/javase/tutorial/javabeans/advanced/persistence.html)。しかし、私が言ったように、多くのフレームワークはJavaBeanの慣習に尊重されていますが、それはそれらをすべて尊重しなければならないというわけではありません。たとえば、オブジェクトが直列化可能でない場合、JSP ELを使用してオブジェクト・プロパティにアクセスすることは失敗しません。 –

2

JavaBeans仕様では、タイプJavaBeansコンポーネントを「再利用可能なソフトウェアコンポーネント」として定義しています。コンポーネントは単純なJava Beanクラスです。Javaは、メソッドの命名、構築、および動作に関する特定の規則を尊重します。これらの規則に従うことで、開発ツール用のJava Beansの使用、再利用、置換、および接続が可能になります。このクラスのインスタンスを保存および復元するには、Beanが "Serializable"である必要があります。

関連する問題