स्कैला-आधारित प्ले एप्लिकेशन में, मैं नियंत्रक को अनुरोध किए बिना सिंगलटन सेवा शुरू करने की कोशिश कर रहा हूं। मैंने सिंगलटन वर्ग बनाने के लिए 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 सेवा चल रही के बिंदु पर शुरू करने के लिए और एक नियंत्रक मार्ग हिट करने के लिए एक अनुरोध के लिए इंतजार नहीं कर के लिए।
क्या आपने "एसबीटी संकलन शुरू करने" का प्रयास किया था? रन विकास के दौरान कुछ चाल करता है। –
@AlvaroCarrasco बहुत बढ़िया! वह यह था! क्या आप इसे आधिकारिक उत्तर के रूप में पोस्ट कर सकते हैं ताकि मैं इसे 'उत्तर दिया' के रूप में बना सकूं और आपको क्रेडिट दे सकूं? –
किसी और के लिए जो इस पर चलता है, यहां एक पोस्ट है जो 'रन' और 'स्टार्ट' के बीच अंतरों पर चर्चा करता है: http://stackoverflow.com/questions/18213427/what-are-the-differences-between-play- चलाने और शुरू –