5

OK Spring Gurus...これを分解してください。Spring MVC のドキュメントを読んでいるときに、次のステートメントに出くわしました。

「....Spring の ApplicationContext インスタンスはスコープ指定できます。Web MVC フレームワークでは、各 DispatcherServlet に独自の WebApplicationContext があり、ルート WebApplicationContext ですでに定義されているすべての Bean を継承します。定義されたこれらの継承された Bean は、サーブレット固有のスコープ、および新しいスコープ固有の Bean を特定のサーブレット インスタンスに対してローカルに定義できます。」

Spring ドキュメント リファレンス

これに基づいていくつか質問があります。

  1. このステートメントは、DispatcherServlet のインスタンスが複数存在できることを意味します。Web アプリでは、サーブレットのインスタンスが 1 つしか存在できない (理想的には存在する必要がある) ため、それはまったく真実ではありませんか?
  2. 上記のステートメントのコンテキストで、「サーブレット固有のスコープ」とは正確にはどういう意味ですか?
4

1 に答える 1

2

それは完全に真実ではありませんか

これは「時々真実」に翻訳されますが、それはあなたが意図したものではないと思います.

Web アプリでは、サーブレットのインスタンスは 1 つだけ存在できます (理想的には存在する必要があります)。

これは完全に間違っているわけではありません。ほとんど間違っているだけです。<servlet>デプロイメント記述子 ( web.xml) の要素と、そのサーブレットを実装するクラスを混同しています。

確かに、一部の限られたケースを除いて、コンテナはサーブレットごとにクラスのインスタンスを 1 つしかインスタンス化できません。ただし、<servlet>すべてが同じクラスを指定する複数のエントリを持つことができます。

上記のステートメントのコンテキストで「サーブレット固有のスコープ」とは正確には何を意味しますか

あまり良い例ではありません (実際、良い例はほとんどないと思います)。複数のクライアントをサポートするアプリケーションがあり、それぞれが異なる URL と異なるデータベースを持っていますが、それ以外は同じです。ルート構成でビジネス オブジェクトを定義し、Web アプリ構成でデータソースを定義できます。クライアント固有の構成 Bean と同様に。

于 2012-09-02T16:10:08.763 に答える