Grails servis sınıfının Singleton tipi olduğunu öğrendim. Hangi sebepten dolayı servis sınıfları Singleton olarak tanımlanır?Neden Grails Servis Sınıfı Singleton?
Şimdiden teşekkürler.
Grails servis sınıfının Singleton tipi olduğunu öğrendim. Hangi sebepten dolayı servis sınıfları Singleton olarak tanımlanır?Neden Grails Servis Sınıfı Singleton?
Şimdiden teşekkürler.
Grails hizmetleri, used with different scopes olabilir sadecesingleton
sınıfa böyle bir şey ekleyerek değil: manuel itibaren
static scope = "flow"
:
prototype
- Yeni bir hizmet oluşturulur her zaman başka bir sınıfrequest
içine enjekte edilir - İstek başına yeni bir hizmet oluşturulacakflash
- Yeni bir hizmeti sadeceflow
mevcut ve gelecek istek için oluşturulacak - web yılında hizmet akışınınconversation
kapsamı için var olacaktır akar - web yılında hizmet için var olacaktır akar konuşmanın kapsamı. yani bir kök akış ve altsession
akar - Bir hizmet bir kullanıcı oturumu kapsamında oluşturulursingleton
(varsayılan) - Hizmet da yalnızca bir örnektemel nedeni için var singleton
öğesinin seçilmesi, varsayılan olarak hem düşük bellek kullanımında (yalnızca tek bir örnekte bulunur) hem de daha az işlem süresiyle, yeni bir nesne oluşturmanın ek yükünü ortadan kaldırdığınız için daha düşük performans elde etmektir.
Şimdi bir şüphem var. İşlemi destekleyen 'm1' adlı hizmetim olduğunu varsayalım. Artık iki kullanıcı 'service' singleton olması koşuluyla eş zamanlı olarak 'm1''e erişiyor, aynı anda iki kullanıcıyı aynı anda işlem desteği ile nasıl ele alıyor? –
[İşlemlerde el kitabında bir bölüm var] (http://grails.org/doc/latest/guide/services.html#declarativeTransactions). İşlemler, yöntem çağrıları sırasında ele alınır, bu yüzden kapsamı devreye girmez (hizmeti eyalette saklamıyorsanız). – OverZealous