2016-03-24 14 views
0

@RequestScoped'u inceliyordum ve ServletModule'u yüklemeden kullanmanın bir yolu olup olmadığını merak ediyordum. Guice 3.0 + Jersey 1.17 kullanıyorum ve muhtemelen GuiceContainer & GuiceServletContextListener'u kullanmak istemiyorum.ServletModule olmadan RequestScope'u Kullanma

Jersey isteğindeki bazı kullanıcı girdilerine bağlı olarak istek başına nesne oluşturma (enjeksiyon) istiyorum. Mümkün mü? & güvenlik GuiceContainer güvenlik notları, mevcut ServletContextListener'u Guice ile değiştirmek zorunda kalırsa ne olabilir?

RequestScope kullanmanın bir yolu benim gereksinimlerime göre kullanılıyorsa, bana aynı referansları verebilir misiniz?

cevap

1

Özel bir Scope uygulamasını, @RequestScoped gibi önceden tanımlı bir kapsam belirleme notuna bağlamak mümkündür. Aynı kapsam belirleme notuna iki farklı uygulamayı bağlayamayacağınız için 'un'u ServletModule kullanamazsınız anlamına gelir.

Ayrıntılar için documentation on Custom Scopes'a bakın. Kapsam belirleme amacıyla bir “talep” teşkil edip etmediğini belirlemek ve kodun gerektiği gibi girip çıkmasını sağlamak için kod yazmanız gerekecektir. Örneğin, normal Guice uygulamasında, ServletScopes.RequestScope, geçerli isteğin kaydını tutmak için ThreadLocalinitialized in GuiceFilter kullanır.

İlgili konular