2016-01-28 6 views
5

स्कैला-आधारित प्ले एप्लिकेशन में, मैं नियंत्रक को अनुरोध किए बिना सिंगलटन सेवा शुरू करने की कोशिश कर रहा हूं। मैंने सिंगलटन वर्ग बनाने के लिए 2.4 API documentation में दिशानिर्देशों का पालन किया है और फिर उत्सुक सिंगलटन के रूप में कक्षा को बांधने के लिए गुइस की निर्भरता इंजेक्शन लाइब्रेरी का उपयोग करें।मैं प्ले में नियंत्रक अनुरोध की आवश्यकता के बिना एक उत्सुक सिंगलटन कैसे प्रारंभ करूं?

उत्सुक बाध्यकारी के साथ भी, एक नियंत्रक मार्ग के माध्यम से अनुरोध प्राप्त करने के बाद तक सिंगलटन अभी भी कॉल नहीं किया जाता है। क्या मैं गलत क्या कर रहा हूँ के बारे में कोई विचार?

मॉड्यूल

package models 

import com.google.inject.AbstractModule 
import com.google.inject.name.Names 

class MessageLogModule extends AbstractModule { 
    def configure() = { 
    bind(classOf[MessageLogService]).asEagerSingleton 
    } 
} 

विन्यास

play.modules.enabled += "models.MessageLogModule" 

सिंगलटन

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 
} 

भागो कमान

sbt compile run 

ऊपर सिंगलटन जब तक मैं जारी बुलाया नहीं प्राप्त करता है एक ...

curl http://localhost:9000/ 

क्या मैं चाहता हूँ है MessageLogService सेवा चल रही के बिंदु पर शुरू करने के लिए और एक नियंत्रक मार्ग हिट करने के लिए एक अनुरोध के लिए इंतजार नहीं कर के लिए।

+1

क्या आपने "एसबीटी संकलन शुरू करने" का प्रयास किया था? रन विकास के दौरान कुछ चाल करता है। –

+0

@AlvaroCarrasco बहुत बढ़िया! वह यह था! क्या आप इसे आधिकारिक उत्तर के रूप में पोस्ट कर सकते हैं ताकि मैं इसे 'उत्तर दिया' के रूप में बना सकूं और आपको क्रेडिट दे सकूं? –

+0

किसी और के लिए जो इस पर चलता है, यहां एक पोस्ट है जो 'रन' और 'स्टार्ट' के बीच अंतरों पर चर्चा करता है: http://stackoverflow.com/questions/18213427/what-are-the-differences-between-play- चलाने और शुरू –

उत्तर

5

क्या आप चाहते हैं: sbt compile start

run देरी संकलन और प्रारंभ तक पहले अनुरोध पर तेज़ी से परिवर्तन ताज़ा देखने के परिवर्तन विकास चक्र के लिए अनुमति देने के लिए।

संबंधित मुद्दे