मैं एक विरासत कोड बेस से निपट रहा हूं जहां वसंत में वायर्ड नहीं होने वाली कक्षा को वसंत में वायर्ड किया जाता है। मैं एक फैक्ट्री क्लास बनाने की उम्मीद कर रहा था जिसे स्टार्टअप पर रखा गया था और फिर मैं वायर्ड अप ऑब्जेक्ट प्राप्त करने के लिए getInstance() विधि को कॉल कर सकता था। इस के बारे में जाने के लिए सबसे अच्छा तरीका क्या है?स्प्रिंग वायर एक स्टेटिक क्लास
उदाहरण:
public class LegacyA {
public void doSomething() {
...
Foo foo = FooFactory.getInstance();
...
}
}
public class FooFactory {
private static Foo foo;
public static Foo getInstance() {
if (foo == null) throw new IllegalStateException();
return foo;
}
}
मैं FooFactory जरूरत स्टार्टअप पर तार हो, ताकि LegacyA बस getInstance() कॉल कर सकते हैं इतना है कि यह (फू का एक उदाहरण है जो भी एक सेम आवेदन के संदर्भ में परिभाषित किया गया है देता है)।
<bean id="legacyA" class="LegacyA"/>
<bean id="foo" class="Foo"/>
<!-- I need this bean to be injected with foo so that the FooFactory can return a foo -->
<bean id="fooFactory" class="FooFactory"/>
संपादित करें: मैं अपने उदाहरण एक सा फिर से काम करना पड़ता था के रूप में मुझे मिल गया यह थोड़ा अपने ही सिर में confuzzled ...
फू फैक्ट्री में फू इंजेक्शन कैसे किया जाता है? एक सेटर, कन्स्ट्रक्टर, ...? – wds