सेट करने के लिए स्प्रिंग 3.1 @PropertySource को ओवरराइड करने के लिए कैसे करें इस कक्षा को किसी अन्य कॉन्फ़िगर क्लास में पहले से सेट @PropertySource को ओवरराइड करने के लिए।IgnoreResourceNotFound और IgnoreUnresolvablePlacehold
@Configuration
@PropertySource({ "classpath:${env.placeholder}/app.properties" })
public class PropertyOverrideConfig {
}
लेकिन जब भी फ़ाइल या प्लेसहोल्डर गुम हो जाता है, तो यह संदर्भ लोडिंग में विफल रहता है। मुझे उस एनोटेशन लोडेड प्रॉपर्टी में निम्नलिखित झंडे सेट करने की ज़रूरत है, ताकि अगर यह संपत्ति नहीं ढूंढ पाती है तो यह छोड़ जाएगी।
setIgnoreResourceNotFound(true);
setIgnoreUnresolvablePlaceholders(true);
Question1: क्या @PropertySource के इन चिह्नों स्थापित करने के लिए उचित तरीका क्या होगा?
अपडेट: कि एनोटेशन this पेज चर्चा करते हुए या तो, यह संपत्ति फ़ाइल उठा नहीं है बिना एक ही वर्ग के लिए एक @Bean जोड़ने की कोशिश की। मेरे पास एक्सएमएल कॉन्फ़िगरेशन नहीं है।
@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
final PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
Resource[] resources = new ClassPathResource[ ] {
new ClassPathResource("classpath:${env.placeholder}/app.properties") };
pspc.setLocations(resources);
pspc.setIgnoreResourceNotFound(true);
pspc.setIgnoreUnresolvablePlaceholders(true);
return pspc;
}
Question2: मुझे यकीन है कि मैं कुछ याद कर रहा हूँ, लेकिन यह पता लगाने नहीं कर सकता है कि यह क्या है, किसी भी मदद बहुत अच्छा होगा।
क्या आप सुनिश्चित हैं कि कोई अन्य PropertySourcesPlaceholder कॉन्फ़िगरर उदाहरण पंजीकृत नहीं हैं? हो सकता है कि आपको '@ बीन 'एनोटेटेड विधि बनाना चाहिए जो प्रॉपर्टी स्रोत्स प्लेसहोल्डर कॉन्फ़िगरर स्टेटिक (जैसा कि' बीन' अनुशंसाओं के लिए जावा डॉक के रूप में) देता है –
धन्यवाद @ बोरीस्रेखोवोव, पोस्ट करते समय मैं स्थैतिक चूक गया। इस बीच, क्या होगा, अगर मेरे पास 'PropertySourcesPlaceholderConfigurer' पहले से ही एक अलग कॉन्फ़िगरेशन पर बीन पंजीकृत है ?? – raksja
मुझे बिल्कुल याद नहीं है, लेकिन आपके पास कई PropertySourcesPlaceholderConfigurers (और उन्हें अलग प्लेसहोल्डर उपसर्ग/प्रत्यय निर्दिष्ट कर सकते हैं) - शायद एक और प्लेसहोल्डर कॉन्फ़िगरर है जो अनजान प्लेसहोल्डर्स –