web-dev-qa-db-ja.com

Java Containerの定義

Javaサーブレットコンテナなどのコンテナについて何度も読んだことがありますが、エンタープライズ内のコンテナの適切な定義を見つけることができないようですJava world。

エンタープライズJavaコンテナの適切な定義を知っている人はいますか?

41
javamonkey79

より一般的なコンテナパターン(エンタープライズJavaコンテナは特殊化と見なすことができます)を参照すると、本 Server Component Patterns by M.Volter、et al。以下を提供します:

[A CONTAINER提供]コンポーネントに技術的な懸念を追加する責任を負う実行環境...概念的には、コンポーネントをラップし、クライアントに密接に統合された機能的および技術的な懸念の錯覚を与えます。

このような技術的な懸念の例には、セキュリティ、トランザクション管理、ロギングなどが含まれます。

20

Java EEの一般的なコンテナはサーブレットコンテナとEJBコンテナであり、これらはIoC(Inversion of Control)コンテナの例と考えています。重要な側面は次のとおりです。

  1. コードにmain()または「リクエストロジックをここで待つ」がありません-コンテナが起動してそれ自体を構成し、その後コードを初期化してリクエストを配信します
  2. コードは、インスタンスがコンテナによって制御されるライフサイクルを持つ多くの同様のクラス(サーブレットコンテナのサーブレット、EJBコンテナのEJB)の1つである場合があります。
  3. リクエストは、コンテナによって制御されるリソース(HTTPポートなど)を使用して、場合によってはかなりのインフラストラクチャの賢明さ(HTTPリクエストキュー、EJBロードバランシングなどを参照)を使用して、コンテナによって定義されたプロトコルを介してサーブレットまたはEJBに配信されます
  4. トランザクション制御やセキュリティ管理などの機能から大きな付加価値があります-コンテナはコードを呼び出しているため、これを邪魔にならずに実装するのに適しています。
  5. メインコンテナの機能は非常にIOCであり、コンテナは適切なタイミングでコードを呼び出しますが、コンテナはコードが呼び出すことができる便利なAPIも提供します(たとえば、サーブレットまたはEJBコンテキストを取得するため)。
40
djna

Java EEコンテナー

通常、シンクライアントの多層アプリケーションは、トランザクションおよび状態管理、マルチスレッド、リソースプーリング、およびその他の複雑な低レベルの詳細を処理するための複雑なコードの多くの行を含むため、記述が困難です。コンポーネントベースおよびプラットフォームに依存しないJava EEアーキテクチャにより、ビジネスロジックは再利用可能なコンポーネントに編成されているため、Java EEアプリケーションを簡単に記述できます。 Java EEサーバーは、コンポーネントの種類ごとにコンテナの形で基礎となるサービスを提供します。これらのサービスを自分で開発する必要がないため、ビジネス問題の解決に集中できます。

http://download.Oracle.com/javaee/5/tutorial/doc/bnabo.html

7
Marek Sebera

コンテナの背後にある重要な概念は 制御の反転 です。コンテナ内のアプリケーションコンポーネントは、他のアプリケーションコンポーネントや依存する低レベルのリソースと疎結合できます。 Javaの場合、これらのリソースは通常、データベース接続、ネットワーク接続、JNDIなどのようなものです。

たとえば、TomcatなどのWeb /サーブレットコンテナはEJB3などのアプリケーションレベルの仕様をサポートしていないため、Tomcatはアプリケーションにインジェクションするためにejbをワイヤリングできません。

5
jpredham

「コンテナは、コンポーネントと、コンポーネントをサポートする低レベルのプラットフォーム固有の機能との間のインターフェースです。Webコンポーネント、エンタープライズBean、またはアプリケーションクライアントコンポーネントを実行する前に、Java EEモジュールとそのコンテナにデプロイされています。」ここに私のソースがあります: http://docs.Oracle.com/javaee/1.4/tutorial/doc/Overview3.html

2
grepit

コンテナは、ダイナミズムをもたらす実行環境です。 HTTPレスポンスを作成し、HTTPリクエストをオブジェクトに変換し、サーブレットのライフサイクルを作成および管理します。

Java EEは、セキュリティ、スケーラビリティ、堅牢性、可用性などの企業の問題を​​解決するために使用される仕様のコレクションです。

Java EEのすべての仕様を管理するコンテナは、Javaエンタープライズコンテナとして知られています。たとえば、glassfish、JBossなど(BTW TomcatはEEコンテナではありません。 Webコンテナー)

2
Abinash

Java servlets、Java server pages and Javaサーバーの顔。

1
ben H