为什么Grails服务类是单例的?
我知道Grails服务类是单例类型的。出于什么原因,服务类被定义为Singleton 提前谢谢 Grails服务可能不仅仅是为什么Grails服务类是单例的?,grails,Grails,我知道Grails服务类是单例类型的。出于什么原因,服务类被定义为Singleton 提前谢谢 Grails服务可能不仅仅是singleton,而是通过向类中添加类似的内容: static scope = "flow" 从手册中: prototype-每次将新服务注入另一个类时,都会创建一个新服务 请求-将为每个请求创建一个新服务 flash-将仅为当前和下一个请求创建新服务 flow-在web流中,服务将在流的范围内存在 对话-在web流中,服务将在对话范围内存在。即根流及其子流 会话-为
singleton
,而是通过向类中添加类似的内容:
static scope = "flow"
从手册中:
-每次将新服务注入另一个类时,都会创建一个新服务prototype
-将为每个请求创建一个新服务请求
-将仅为当前和下一个请求创建新服务flash
-在web流中,服务将在流的范围内存在flow
-在web流中,服务将在对话范围内存在。即根流及其子流对话
-为用户会话的范围创建服务会话
(默认)-该服务只存在一个实例singleton
选择
singleton
作为默认值的主要原因是为了获得更好的性能,既可以减少内存使用(只有一个实例闲置),又可以减少处理时间,因为这样可以消除创建新对象的开销。现在我有一个疑问。假设我有一个名为m1
的服务,它支持事务。现在两个用户同时访问m1
,如果服务
是单例的,那么它如何在事务支持的同时处理两个用户呢。事务是在方法调用期间处理的,因此作用域不会进入其中(只要不在服务中存储状态)。