2016-01-28 14 views
5

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/ 

.

+1

"sbt derleme başlangıcı" nı denediniz mi? Run, geliştirme sırasında bazı hileler yapar. –

+0

@AlvaroCarrasco Harika! Öyleydi! Bunu resmi bir cevap olarak gönderebilir misiniz? Böylece 'Cevaplandı' olarak yapabilir ve size kredi verebilir miyim? –

+0

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 –

cevap

5

Ne istiyorsun geçerli: İlk istek hızlı değişim yenileme-see-değişim gelişim döngüsü için izin vermek sbt compile start

run gecikmeler derleme ve başlatma kadar.

İlgili konular