9

हमारे पास एक नई Play 2.0 प्रोजेक्ट है और हम DI को पेश करने की योजना बना रहे हैं क्योंकि हम कुछ जटिल तृतीय पक्ष एकीकरण कोड जोड़ते हैं।जावा के लिए 2.0/2.1 और निर्भरता इंजेक्शन

Play 2.0 के लिए एक गिइस प्लगइन है लेकिन ऐसा लगता है कि यह 2.1 पर अप्रचलित हो जाएगा और मेरे पास एक झटका है कि 2.1 अब तक नहीं है।

https://github.com/typesafehub/play-plugins/tree/master/guice

Guice प्ले 2.0/2.1 या हम अन्य विकल्पों पर विचार करना चाहिए के लिए एक सुरक्षित शर्त है?

+0

प्ले प्लगइन क्या है? –

उत्तर

9

मैं 2.1 संस्करण के साथ, और वैश्विक वस्तु से नया नियंत्रक instanciation के साथ जाना होगा।

import play.GlobalSettings; 

    import com.google.inject.Guice; 
    import com.google.inject.Injector; 

    public class Global extends GlobalSettings { 

    private static final Injector INJECTOR = createInjector(); 

    @Override 
    public <A> A getControllerInstance(Class<A> controllerClass) throws Exception { 
     return INJECTOR.getInstance(controllerClass); 
    } 

    private static Injector createInjector() { 
     return Guice.createInjector(); 
    } 

    } 

आप विशेष @ साथ, इन नियंत्रकों के लिए एक विशेष मार्ग घोषित करने के लिए है:

यहाँ doc से एक Guice उदाहरण है

GET /myUrl  @controllers.MyController.myMethod() 

और तुम भी एक नज़र डाल सकते हैं वसंत का उपयोग कर इस डेमो में: https://github.com/guillaumebort/play20-spring-demo