私は春にシングルトンBeanをほとんど作成していません。私はコンストラクタ内部にログを追加しました。ログが2回印刷されているのがわかりました。Spring Beanはxmlとコンポーネントスキャンで2回初期化されます
@Component
public class User{
public User() {
System.out.println(" Bean got initialized"+this);
}
private Integer userid;
private String username;
//getter and setter
}
XMLでBeanを定義し、自動スキャンを構成しました。
<context:component-scan base-package="com.demo" />
<bean id="user" class="com.demo.User"/>
コンテキストxmlとパッケージスキャンでBeanを初期化しているので、Beanは2回初期化されています。クラスから@Componentを削除した後、ログを1回だけ表示しています。
私の理解が正しいかどうかを確認してください。
アノテーションはSpringで導入されたので、xmlプロパティを完全に設定する必要はありません。 @Componentを使用しているときは、UserクラスのBeanを作成する作業をしています。したがって、@ Componentを使用して、明示的にBean "user"を作成すると、明らかに2つのインスタンスが作成されます –