Scala tabanlı bir Uygulama uygulamasında, bir denetleyiciye istek göndermeden bir tekli hizmet başlatmaya çalışıyorum. Tek bir sınıf oluşturmak için 2.4 API documentation'daki yönergeleri izledim ve daha sonra sınıfı istekli tekil olarak bağlamak için Guice'nin bağımlılık enjeksiyon kitaplığını kullanın. Oyunda bir denetleyici isteği gerektirmeden istekli bir bekar nasıl başlatılır?
İstenilen ciltleme ile bile, bir denetleyici yolu üzerinden istek aldığım sürece, singleton hala aranmaz. Yanlış yaptığım şey hakkında bir fikrin var mı?
Modül
package models
import com.google.inject.AbstractModule
import com.google.inject.name.Names
class MessageLogModule extends AbstractModule {
def configure() = {
bind(classOf[MessageLogService]).asEagerSingleton
}
}
Yapılandırma
play.modules.enabled += "models.MessageLogModule"
Singleton
package models
import javax.inject._
@Singleton
class MessageLogService {
// Create a file to test
println("IN SINGLETON - CREATING NEW FILE")
val file = new java.io.File("howdy.txt")
file.createNewFile
}
Çalıştır komut
sbt compile run
Ben sorunu kadarYukarıdaki tekil adlı değil bir ... MessageLogService hizmetini çalıştıran noktasında başlar ve bir kontrolör rotayı vurmak için bir istek için sabırsızlanıyorum için içindir İstediğim
curl http://localhost:9000/
.
"sbt derleme başlangıcı" nı denediniz mi? Run, geliştirme sırasında bazı hileler yapar. –
@AlvaroCarrasco Harika! Öyleydi! Bunu resmi bir cevap olarak gönderebilir misiniz? Böylece 'Cevaplandı' olarak yapabilir ve size kredi verebilir miyim? –
Bu konuda çalışan herkes için, burada "run" ve "start" arasındaki farkları tartışan bir yazı var: http://stackoverflow.com/questions/18213427/what-are-the-differences-between-play- çalışma ve başlatma –