2011-02-25 15 views
67

मैं नाम simple-core-impl और simple-core-web साथ दो परियोजनाओं की है।किसी प्रोजेक्ट के वसंत-config.xml को किसी अन्य प्रोजेक्ट के spring-config.xml में कैसे आयात करें?

दोनों परियोजनाओं spring based हैं और दोनों एक माता पिता इस परियोजना का नाम simple-core है।

मैं simple-core-impl परियोजना में simple-impl-config.xml और simple-impl-config.xml में simple-web-config.xml है। simple service जो एक विधि है जो मुझे एक संदेश "हैलो दुनिया" रिटर्न है:

मैं एक सेम जो वर्ग है।

मैं simple-web-config.xml में आयात करना चाहता हूं, इसलिए बीन मेरे नियंत्रक में उपलब्ध है जो simple-core-web प्रोजेक्ट में है।

simple-core-web परियोजना simple-core-impl परियोजना का एक जार है।

तो कृपया मुझे बताएं कि मैं एक परियोजना के spring-config.xml में एक परियोजना के spring-config.xml आयात कर सकता हूं ताकि पहले सभी बीन्स आयात करके अन्य प्रोजेक्ट में उपलब्ध हो सकें?

मैं सभी सेम के पुनर्लेखन के लिए नहीं करना चाहती।

उत्तर

99
<import resource="classpath:spring-config.xml" /> 

संदर्भ:

+0

और अगर मैं एक ही स्थिति है, लेकिन केवल वसंत-config.xml के बजाय टिप्पणी किए गए विन्यास वर्गों का उपयोग मैं क्या कर सकता है? – Aditzu

+0

@Aditzu अपने अन्य '@ कॉन्फ़िगरेशन' कक्षाओं को आयात करने के लिए '@ आयात' का उपयोग करें। –

56

शॉन के जवाब का एक छोटा सा बदलाव:

<import resource="classpath*:spring-config.xml" /> 
तारांकन के साथ

आदेश खोज फ़ाइलें 'वसंत-config.xml' वसंत के classpath में कहीं भी में।

एक अन्य संदर्भ: Divide Spring configuration across multiple projects

Spring classpath prefix difference

+0

क्लासपाथ * करता है: यदि किसी अन्य मॉड्यूल के अंदर है तो लागू करें? – jpganz18

9

किसी कारण से, आयात के रूप में मेरे लिए रिकार्डो फ्लॉप काम ने सुझाव दिया।

<import resource="classpath*:/spring-config.xml" />

+0

यह पैटर्न काम में नहीं है, अगर कॉन्फ़िगरेशन फ़ाइल जार से आती है। –

1

आपने मॉड्यूल एक में मॉड्यूल बी के जार/युद्ध जोड़ सकते हैं और अपने नए वसंत मॉड्यूल फ़ाइल में classpath जोड़ने के लिए: मैं इसे निम्नलिखित बयान के साथ काम मिल गया। बस इस लाइन

वसंत-moduleA.xml जोड़ने - संसाधन फ़ोल्डर के अंतर्गत मॉड्यूल एक में एक फाइल है। इस लाइन को जोड़ कर, यह बी

मॉड्यूल बी/वसंत-moduleB मॉड्यूल मॉड्यूल एक से सभी सेम परिभाषा आयात करता है।एक्सएमएल


import resource="classpath:spring-moduleA.xml"/> 

<bean id="helloBeanB" class="basic.HelloWorldB"> 
    <property name="name" value="BMVNPrj" /> 
</bean> 
1

यहाँ एनोटेशन आधारित उदाहरण है:

@SpringBootApplication 
@ImportResource({"classpath*:spring-config.xml"}) 
public class MainApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(MainApplication.class, args); 
    } 
} 
संबंधित मुद्दे