我开始知道 Grails 服务类是单例类型的。出于什么原因,服务类被定义为单例?
提前致谢。
Grails 服务可以与不同的范围一起使用,而不仅仅是 singleton
,通过在类中添加类似这样的内容:
static scope = "flow"
从手册:
prototype
- 每次注入另一个类时都会创建一个新服务request
- 每个请求都会创建一个新服务flash
- 仅为当前和下一个请求创建新服务flow
- 在网络流中,服务将存在于流的范围内conversation
- 在网络流中,服务将存在于对话范围内。即根流及其子流session
- 为用户会话的范围创建服务singleton
(默认)- 只存在一个服务实例选择默认值的主要原因singleton
是为了获得更好的性能,既可以减少内存使用量(只有一个实例存在),也可以减少处理时间,因为您消除了创建新对象的开销。