Spring アプリケーションの DAO および Service クラスをシングルトンスコープにする必要があると多くの場所で書かれているのを見てきました。
私のアプリケーションには、次のサービスクラスがあります
@Service
public class CustomerServiceImpl implements CustomerService {
@Autowired
private CustomerDAO customerDAO;
.......
parameterised methods only....
}
およびDAOクラス
@Repository
public class CustomerDAOImpl implements CustomerDAO {
@Autowired
private SessionFactory sessionFactory;
...............
parameterised methods only....
}
スコープを定義していないため、デフォルトのスコープはシングルトンです。そのため、CustomerService と CustomerDAO の両方がコンテナーごとに 1 回だけインスタンス化されます。また、DAO クラスは最初に 1 回だけ Service クラスにオートワイヤーされます。つまり、(またはそれを意味するのでしょうか? )何百ものスレッドが両方のクラスの同じインスタンスを使用することになります。
この場合、スレッドセーフはどのように保証されるのでしょうか?
xml で定義された hibernate sessionfactory Bean のスコープはどうですか?
spring mvc アプリケーションでの Bean スコープとスレッド セーフについて、私は非常に混乱しています。Springsource のドキュメントでは、Web アプリケーションについてこれらを明確に説明していません。
重い要求の Web アプリケーションに Bean スコープ (DAO、Service、Controller、およびその他の Bean 用) を使用するベスト プラクティスを教えてください。
これらを説明するリンクはすべて私に感謝します。
事前にご提案いただきありがとうございます。