2011-08-17 40 views
0

我想更好地了解,当它很有意义的使用Spring中的原型范围如何和。看起来它与EJB世界中处理无状态会话bean的方式类似(尽管EJB容器会从将创建的无状态会话Bean池释放实例,而不是按需创建新实例)。使用原型范围和Spring服务门面和层次

我有那几个基本问​​题:)从架构的角度来看

1,当它意义在一个典型的J2EE Web应用程序(Spring MVC的/ Hibernate或者JDBC模板DB使用原型作用域bean访问)?

2)是否有建立类似这样的汇集原型实例池的EJB服务器将与无状态会话bean做的一个概念?

3)如果该服务门面(即在EJB类似于会话外观)与原型范围中创建,并会在处理来自Web层传来的并发请求帮助?我如何控制创建的实例的数量(限制到某个可管理的数量,最好是将它们合并)?

回答

1

你想为单身的服务,假设你的服务是无状态的。这样你每个服务只有一个实例,并且因为它们是无状态的,所以它们是线程安全的。

你想的东西像要求的动作原型(例如在支柱),所以一个新的对象被创建来处理每个请求。这些原型可以连接到单件服务。

documentation

非单身,在每一个为特定 豆的请求时的时间 创建一个新的bean实例的豆部署结果的原型范围。也就是说,这个bean被注入到另一个bean中,或者你通过容器上的getBean()方法调用来请求它。作为 规则,使用所有有状态bean的原型范围和无状态bean的单例 范围。