springsourceドキュメントによると、singletonスコープ Bean は
コンテナーごとに 1 回だけインスタンス化されます。たとえば、ユーザーUserDetailsに関する情報を含むシングルトン スコープの Bean があり
ます。
私の main() メソッドでは:
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"Spring-Customer.xml"});
UserDetails ud1 = (UserDetails)context.getBean("userDetails");
custA.setAddress("Address set by ud1");
System.out.println("Address : " + ud1.getAddress());
UserDetails ud2 = (UserDetails)context.getBean("userDetails");
System.out.println("Address : " + ud2.getAddress());
出力は次のようになります。
Address set by ud1
Address set by ud1
userDetails は singleton Bean であるため、2 回目の取得ud2は ud1 と同じ結果になります。
今ここに私の問題があります:
私のWebアプリケーションには、次UserDetailsのBeanがありますdispatcher-servlet.xml.
<bean id="userDetails" class="com.mukund.DTO.UserDetails" />
最初の質問:シングルトン スコープは Web アプリケーションのデフォルトでもありますか?
IF YES:
この Bean は、AccountServiceおよびCustomerServiceクラスに自動配線されます。
クライアントが、CustomerService クラスでユーザーの名を「UserA」clientAに設定し、しばらくしてから AccountService クラスから名を取得したと言う場合、
2 番目の質問:最初の名前として「UserA」を持つ UserDetailsの同じインスタンスを取得しますか?
3 番目の質問:その間、別のクライアントclientBが AccountService クラスで最初の名前を取得しようとすると、"UserA" を取得しますか?
4 番目の質問:同じ UserDetails インスタンスが clientA、clientB などで共有されますか? はいの場合: プロトタイプ、リクエスト、またはセッションを選択するスコープ。
私の言いたいことを理解していただければ幸いです。Web アプリケーションに関して、Spring Bean のスコープについて説明してください。
ありがとう