मेरे पास एक स्प्रिंग बूट लोचदार खोज अनुप्रयोग है जो दो प्रोफाइलों में से एक का उपयोग करता है: application.dev.properties या application.prod.properties। वह हिस्सा ठीक काम करता है। मुझे application.xxx.properties से पढ़ने के लिए बाहरी लोचदार खोज प्राप्त करने में समस्या है।स्प्रिंग बूट लोचदार खोज कॉन्फ़िगरेशन
यह काम करता है:
@Configuration
@PropertySource(value = "classpath:config/elasticsearch.properties")
public class ElasticsearchConfiguration {
@Resource
private Environment environment;
@Bean
public Client client() {
TransportClient client = new TransportClient();
TransportAddress address = new InetSocketTransportAddress(
environment.getProperty("elasticsearch.host"),
Integer.parseInt(environment.getProperty("elasticsearch.port"))
);
client.addTransportAddress(address);
return client;
}
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
return new ElasticsearchTemplate(client());
}
}
लेकिन स्पष्ट रूप से मेरी बहु पर्यावरण मुद्दे को हल नहीं करता है।
मैंने सफलता के बिना होस्ट और पोर्ट चर के लिए @ वैल्यू एनोटेशन की भी कोशिश की है।
मैं उपरोक्त रूप से एप्लिकेशन गुण फ़ाइल से अपने मूल्यों को पढ़ने के लिए कैसे परिवर्तित कर सकता हूं या जिस भी प्रोफ़ाइल को चलाने के लिए चाहता हूं, उसके आधार पर एक अलग @PropertySource फ़ाइल चुन सकता हूं?
spring.data.elasticsearch.properties.host = 10.10.1.10
spring.data.elasticsearch.properties.port = 9300
धन्यवाद
आप क्यों नहीं बस स्प्रिंग बूट का उपयोग नहीं कर रहे हैं, लेकिन यह हल करने के लिए कोशिश कर रहा। आपके द्वारा चुने गए प्रोफ़ाइल के आधार पर स्प्रिंग बूट पहले से ही एक प्रॉपर्टी फ़ाइल लोड करता है। तो आप मूल रूप से इसे कठिन बना रहे हैं ... इसके अलावा स्प्रिंग बूट पहले से ही आपके लिए लोचदार खोज को कॉन्फ़िगर करता है, तो आप इसे फिर से करने की कोशिश क्यों कर रहे हैं .. –