का उपयोग कर रहा getters और setters और कुछ अन्य तरीकों के साथ कई सरल इंटरफेस पढ़ सकते हैं और फाइल सिस्टम से लिखने के लिए है लागू करता है। सीधे जावा कोड का उपयोग करके, मैं एक "आमंत्रण हैंडलर" लिख सकता हूं और इन सभी इंटरफेस के लिए ऑब्जेक्ट्स को तुरंत चालू करने के लिए इसका उपयोग कर सकता हूं (मैंने कोशिश नहीं की है, लेकिन मुझे लगता है कि यह किया जा सकता है)।एक जावा इंटरफ़ेस स्प्रिंग (AOP?)
मुझे आश्चर्य है कि वसंत का उपयोग करके ऐसा करना संभव है या नहीं।
नीचे दिया गया कोड, दिए गए इंटरफ़ेस को लागू करता है। जैसा कि आप आसानी से देख सकते हैं, वही उसी आमंत्रण हैंडलर का उपयोग किसी भी इंटरफ़ेस के लिए किया जा सकता है।
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class AOPTester {
public static void main(String[] args) {
InvocationHandler handler = new MyInvocationHandler();
AnyInterface proxy = (AnyInterface) Proxy.newProxyInstance(
AnyInterface.class.getClassLoader(),
new Class[] { AnyInterface.class },
handler);
proxy.sayHello();
}
}
interface AnyInterface {
public void sayHello();
}
class MyInvocationHandler implements InvocationHandler{
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
System.out.println("Hello!");
return null;
}
}
कुछ यहाँ समान: [http://stackoverflow.com/questions/34133189/mongodb-dao-sets-all-attributes-to-null-before-save/34160666 ? noredirect = 1] (http://stackoverflow.com/questions/34133189/mongodb-dao-sets-all-attributes-to-null-before-save/34160666?noredirect=1) – Valijon
मैं कर रहा हूँ खेद @Valijon, मैं यह न देखें कि उस यूआरएल को किसी भी तरह से संबंधित होना चाहिए जो मुझे करना है। –
'इंटरफेस' कोई तर्क नहीं करता है, बस सेवा इंटरफ़ेस अनुबंध को परिभाषित करें।तो, सबसे पहले, आपको जावा कोड में इंटरफ़ेस कार्यान्वयन को परिभाषित करने की आवश्यकता है। फिर, यदि आप कई बार उस कार्यान्वयन को शुरू नहीं करना चाहते हैं, तो आप संदर्भ से 'सिंगलटन' पुनर्प्राप्त कर सकते हैं। उस लिंक में, कई इंटरफेस हैं, जैसे 'दाओ', 'मोंगोऑपरेशंस' जहां कार्यान्वयन संदर्भ से पुनर्प्राप्त किया गया है। वसंत सिर्फ आपको अपनी कक्षाएं शुरू करने में मदद करता है, कार्यान्वयन वाक्यविन्यास को परिभाषित नहीं करता है (यह बाइट कोड में कैसे संकलित होगा?) – Valijon