Ho un'applicazione Spring Spring Elasticsearch che utilizza uno dei due profili: application.dev.properties o application.prod.properties. Quella parte funziona bene. Sto riscontrando problemi nel far leggere da elasticsearch esterno da application.xxx.properties.Spring Boot Configurazione Elasticsearch
Questo funziona:
@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());
}
}
ma ovviamente non risolve il mio problema multi-ambiente.
Ho anche provato le annotazioni @Value per le variabili host e porta senza esito positivo.
Come è possibile convertire quanto sopra per leggere i suoi valori dal file delle proprietà dell'applicazione o scegliere un file @PropertySource diverso in base al profilo che si desidera eseguire?
spring.data.elasticsearch.properties.host = 10.10.1.10
spring.data.elasticsearch.properties.port = 9300
Grazie
Perché non sei solo utilizzando Primavera Boot ma cercando di lavorare intorno ad esso. L'avvio a molla carica già un file di proprietà in base al profilo selezionato. Quindi in pratica lo stai rendendo difficile ... Inoltre Spring Boot configura già ElasticSearch per te, quindi perché stai provando a farlo di nuovo da te .. –