मैं 2.5.3 करने के लिए 2.4 से एक Playframework आवेदन स्थानांतरित करने के लिए कोशिश कर रहा हूँ को महत्व देता है और मैं application.conf
फ़ाइल से मूल्यों को प्राप्त करने के लिए समस्या है:प्ले 2.5.3: निर्भरता इंजेक्शन का प्रयोग विन्यास पाने के लिए
से पहले प्राप्त करने के लिए application.conf
से के एक मूल्य था कि मुझे क्या करना:
Play.application().configuration().getString("label")
अबPlay.application()
नहीं रहेगी, मैं निर्भरता इंजेक्शन का उपयोग करना चाहिए।
- आयात परिभाषित करें:: आयात
javax.inject.*; import play.Configuration;
- परिभाषित वर्ग संपत्ति: framework documentation मैं निम्नलिखित निर्देशों का उपयोग के आधार पर
@Inject private Configuration configuration;
- मेरी कक्षा पर विन्यास वर्ग संपत्ति उपयोग
जब मैं अपने नियंत्रकपर इन निर्देशों का पालन करता हूंयह पूरी तरह से काम कर रहा है:
लेकिन जब मैं इसे अपने प्रोजेक्ट से किसी अन्य क्लास ऑब्जेक्ट पर उपयोग करने का प्रयास करता हूं, तो निर्भरता इंजेक्शन काम नहीं कर रहा है और मुझे हमेशा NullPointerException
मिलता है।
क्या कोई मुझे निर्भरता इंजेक्शन का उपयोग करके application.conf
से मूल्य प्राप्त करने के बारे में एक उदाहरण दे सकता है?
मेरी जावा कोड में से कुछ हिस्सा है जहाँ मैं डि इस्तेमाल करने की कोशिश:
import javax.inject.Inject;
import play.Configuration;
import play.Logger;
public class Zipper {
@Inject private Configuration configuration;
public void unZip(String zipFilePath) {
Logger.debug("Display : zipFilePath"+zipFilePath);
Logger.debug("before call parameter from application.conf");
Logger.debug("configuration.getString = "+configuration.getString("Unzipedfile.path"));
Logger.debug("aftercall parameter from application.conf");
}
}
और मैं हमेशा configuration.getString("Unzipedfile.path")
पोस्ट कोड है कि काम नहीं कर रहा। – marcospereira
मैंने अनुरोध के रूप में अद्यतन किया है।
उसी तरह का कोड मेरे नियंत्रक application.java पर काम कर रहा है, लेकिन मेरे अन्य जावा वर्गों पर कभी नहीं। – Miguel
आप मनमाने ढंग से कक्षाओं में इंजेक्ट नहीं कर सकते हैं जिन्हें स्वयं डीआई द्वारा नहीं बनाया गया है या गुइस संदर्भ में पेश नहीं किया गया है। यदि आपकी कक्षा जिपर गुइस द्वारा बनाई गई थी या कहीं इंजेक्शन दी गई थी, तो आपके पास इंजेक्ट करने का संदर्भ होगा। http://stackoverflow.com/a/32896354/1956540 – BatteryAcid