스프링 부트 탄성 검색 구성
application.dev.properties 또는 application.prod.properties의 두 가지 프로파일 중 하나를 사용하는 작동하는 Spring Boot Elasticsearch 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());
}
}
하지만 분명히 제 다중 환경 문제를 해결할 수는 없습니다.
또한 호스트 및 포트 변수에 대해 @Value 주석을 시도했지만 성공하지 못했습니다.
애플리케이션 속성 파일에서 값을 읽도록 위를 변환하거나 실행할 프로파일에 따라 다른 @PropertySource 파일을 선택하려면 어떻게 해야 합니까?
spring.data.elasticsearch.properties.host = 10.10.1.10
spring.data.elasticsearch.properties.port = 9300
감사해요.
구성 클래스 및 속성을 제거합니다.
다음 종속성 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
추가만 하면 됩니다.spring.data.elasticsearch
에 대한 속성application-prod.properties
그리고.application-dev.properties
원하는 환경에 맞게 변경할 수 있습니다.이 내용은 스프링 부트 가이드의 탄성 검색 섹션에 설명되어 있습니다.
spring.data.elasticsearch.cluster-nodes=10.10.1.10:9300
둘 중 하나의 파일의 값은 물론 다를 것입니다(또는 기본값을 에 넣습니다).application.properties
그리고 단순히 그것으로 덮어쓰기만 하면 됩니다.application-dev.properties
.
스프링 부츠는 다음을 기반으로 합니다.spring.profiles.active
원하는 속성 파일을 로드합니다.
당신 자신을 괴롭힐 필요가 없습니다.
Deinum에 동의합니다. Spring boot을 사용하는 경우 활성 프로파일에서 속성이 활성화됩니다.
프로젝트에 다양한 프로필이 있으며 탄력적인 검색 구성입니다.
@Configuration
public class ElasticSearchConfiguration {
@Value("${spring.data.elasticsearch.cluster-name}")
private String clusterName;
@Value("${spring.data.elasticsearch.cluster-nodes}")
private String clusterNodes;
@Bean
public ElasticsearchTemplate elasticsearchTemplate() throws UnknownHostException {
String server = clusterNodes.split(":")[0];
Integer port = Integer.parseInt(clusterNodes.split(":")[1]);
Settings settings = Settings.settingsBuilder()
.put("cluster.name", clusterName).build();
client = TransportClient.builder().settings(settings).build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(server), port));
return new ElasticsearchTemplate(client);
}
언급URL : https://stackoverflow.com/questions/32837507/spring-boot-elasticsearch-configuration
'programing' 카테고리의 다른 글
스위프트를 가능하게 하는 것UI의 DSL? (0) | 2023.11.04 |
---|---|
"ui-sref"는 링크를 두 번 클릭해도 "ui-view"(컨트롤러가 다시 실행되지 않음)를 새로 고치지 않습니다. (0) | 2023.11.04 |
connect to maria db with mauricio/postgresql-mysql driver in play2.5 (0) | 2023.11.04 |
오류: 언어 c에 대한 사용 권한이 거부되었습니다. (0) | 2023.11.04 |
상대 경로가 있는 다른 PowerShell 스크립트를 호출하려면 어떻게 해야 합니까? (0) | 2023.11.04 |