Javaサーブレットコンテナなどのコンテナについて何度も読んだことがありますが、エンタープライズ内のコンテナの適切な定義を見つけることができないようですJava world。
エンタープライズJavaコンテナの適切な定義を知っている人はいますか?
より一般的なコンテナパターン(エンタープライズJavaコンテナは特殊化と見なすことができます)を参照すると、本 Server Component Patterns by M.Volter、et al。以下を提供します:
[A CONTAINER提供]コンポーネントに技術的な懸念を追加する責任を負う実行環境...概念的には、コンポーネントをラップし、クライアントに密接に統合された機能的および技術的な懸念の錯覚を与えます。
このような技術的な懸念の例には、セキュリティ、トランザクション管理、ロギングなどが含まれます。
Java EEの一般的なコンテナはサーブレットコンテナとEJBコンテナであり、これらはIoC(Inversion of Control)コンテナの例と考えています。重要な側面は次のとおりです。
Java EEコンテナー
通常、シンクライアントの多層アプリケーションは、トランザクションおよび状態管理、マルチスレッド、リソースプーリング、およびその他の複雑な低レベルの詳細を処理するための複雑なコードの多くの行を含むため、記述が困難です。コンポーネントベースおよびプラットフォームに依存しないJava EEアーキテクチャにより、ビジネスロジックは再利用可能なコンポーネントに編成されているため、Java EEアプリケーションを簡単に記述できます。 Java EEサーバーは、コンポーネントの種類ごとにコンテナの形で基礎となるサービスを提供します。これらのサービスを自分で開発する必要がないため、ビジネス問題の解決に集中できます。
コンテナの背後にある重要な概念は 制御の反転 です。コンテナ内のアプリケーションコンポーネントは、他のアプリケーションコンポーネントや依存する低レベルのリソースと疎結合できます。 Javaの場合、これらのリソースは通常、データベース接続、ネットワーク接続、JNDIなどのようなものです。
たとえば、TomcatなどのWeb /サーブレットコンテナはEJB3などのアプリケーションレベルの仕様をサポートしていないため、Tomcatはアプリケーションにインジェクションするためにejbをワイヤリングできません。
「コンテナは、コンポーネントと、コンポーネントをサポートする低レベルのプラットフォーム固有の機能との間のインターフェースです。Webコンポーネント、エンタープライズBean、またはアプリケーションクライアントコンポーネントを実行する前に、Java EEモジュールとそのコンテナにデプロイされています。」ここに私のソースがあります: http://docs.Oracle.com/javaee/1.4/tutorial/doc/Overview3.html
コンテナは、ダイナミズムをもたらす実行環境です。 HTTPレスポンスを作成し、HTTPリクエストをオブジェクトに変換し、サーブレットのライフサイクルを作成および管理します。
Java EEは、セキュリティ、スケーラビリティ、堅牢性、可用性などの企業の問題を解決するために使用される仕様のコレクションです。
Java EEのすべての仕様を管理するコンテナは、Javaエンタープライズコンテナとして知られています。たとえば、glassfish、JBossなど(BTW TomcatはEEコンテナではありません。 Webコンテナー)
Java servlets、Java server pages and Javaサーバーの顔。