3

Springは、Bean定義のさまざまなスコープを定義します。1つはプロトタイプスコープであり、ルックアップごとに新しいインスタンスを提供します。

私はそれに関して2つの疑問があります。

  1. 内部的には、春はどのようにして新しいインスタンスを作成しますか?
  2. 聞いたことがありますが、clone()メソッドを使用して新しいインスタンスを作成します。そうであれば、クローンを使用して新しいインスタンスを作成する理由と、クローンオブジェクトの状態はどうなりますか。クローンは状態もコピーします。 ?
4

2 に答える 2

6
  1. 他のBeanと同様に、@ Autowiredで注釈が付けられたコンストラクター、または存在しない場合はデフォルトのコンストラクター(または、定義されている場合はファクトリメソッド)を使用します。

  2. あなたが聞いたことは間違っています。ほとんどのオブジェクトはクローン化できないため、それを実行することによってのみ例外が発生します。そしてそれは意味がないでしょう

    • 最初のインスタンスを作成することはできません
    • すべてのインスタンスは最初のインスタンスと同じになりますが、これは明らかに必要なものではありません。
于 2012-09-30T20:07:47.147 に答える
0

Springはリフレクションメカニズムを使用して新しいインスタンスを作成します。Springは、最初にシングルトンマップを検索し、インスタンスが見つからない場合は、Bean定義を使用して新しいインスタンスを作成し、定義されたライフサイクルを適用します。だからあなたが聞いたことは間違っています。

于 2012-10-02T09:25:59.980 に答える