我正在使用Spring框架。我的服务班应该创建为单身人士吗?有人可以解释为什么或为什么不?谢谢!服务层类应该是单身吗?
回答
是的,他们应该是范围singleton
。 服务应该是无状态的,因此它们不需要多于一个实例。
因此,在范围singleton
中定义它们将节省实例化和连接它们的时间。
singleton
是Spring的默认范围,所以只需保留bean定义的原样,而不显式指定scope
属性。
您可以阅读更多关于示波器in the spring docs。
如果你坚持使用singleton作用域的bean,Spring更容易使用。如果你喜欢,单身是它的“默认位置”。是的,它支持其他范围(在XML文件中使用scope="xyz"
),但它使事情变得更难以使用,并损害性能。
基本上,除非你有一个很好的理由否则,坚持单身。
你大多需要单身。 (Spring默认值。)单例必须是线程安全的,因为并行请求将使用相同的单个实例。事实上,它们必须是完全无国籍的,因为它可以在任何时候被破坏和重新创建。
如果您需要跟踪bean内部的状态(不应该,这应该在数据库中或存储在请求中),您将获得相同类型bean的许多实例,内存使用量会增加与请求的数量,即单身人士,你仍然只有一个实例。
即使您将bean的范围限定为请求,它们仍然必须至少是线程安全的(请求来自同一浏览器)。
春天的单身bean可以*不*创建和随时销毁,我不知道你从那里得到了什么(可能你把它们与EJB会话bean混淆了)。此外,Spring单例中的可变状态绝对没问题,你只需要知道在该共享状态下可以完成哪些操作。 – skaffman 2010-01-31 21:30:52
- 1. 服务层应该是Spring bean吗?
- 2. 服务类应该是java中的单例吗?
- 3. 这个对象应该是单身吗?
- 4. 应该WCF服务通常是单身或不是?
- 5. Java Spring服务是单身吗?
- 6. 又该服务层
- 7. 服务层:它应该隐藏域模型的API吗?
- 8. 服务层应该可以访问HttpContext吗?
- 9. 多个服务层对象应该共享一个DAO吗?
- 10. MVC - 应该如何服务层与
- 11. 应该处理cookies是UI还是服务层的一部分?
- 12. 我应该使用单身改造吗?
- 13. 我应该使用单身吗?
- 14. 服务层应该将对象还是id作为输入?应该是对象吗?
- 15. 我应该在我的MVC层和服务层中复制验证吗?
- 16. 哪里应该是我的逻辑服务层或控制器
- 17. tf.layers.dense是单层吗?
- 18. 应用程序服务驻留在服务层中吗?
- 19. 后台服务和UI应该是一个应用程序吗?
- 20. 非单身服务
- 21. 服务总线 - 单身连接类?
- 22. 我应该使用intent服务吗?
- 23. 服务层=应用层= GRASP控制层
- 24. osgi中的所有服务都是单身吗?
- 25. 我应该为每种服务方法创建单独的DTO类吗?
- 26. GWT-RPC服务应该使用java.io.Serializable作为参数类型吗?
- 27. 应该在MVC框架的Model类中调用Web服务吗?
- 28. 我们应该单元测试网络服务吗?
- 29. 验证应该在wcf的单独服务中吗?
- 30. 服务类是否应该超过存储库类的包装?
谢谢。我是Spring新手,我知道如何编写单例类,但是如何使用Spring设置“单例范围”? – oym 2010-01-31 19:36:12
哦,我没有看到你的评论关于它作为默认范围。你能向我解释一下这个范围是如何设置和配置的,以便我可以了解所有东西都是如何连接的?再次感谢。 – oym 2010-01-31 19:37:26
我添加了链接到我的答案。 – Bozho 2010-01-31 19:40:10