[英]How to add a spring-boot jar as a dependency in a new spring-boot project without changing the original pom
[英]Spring Boot - Disable embedded ElasticSearch without removing code or changing POM
我正在尋找一種方法來防止ElasticSearch在Spring Boot項目中啟動(嵌入式或單獨的服務器)。 ES當前未使用,但將在項目的后期使用。
如果我從POM中刪除這些行,則我的代碼需要進行重大更新,因為無法再找到ES的所有注釋。
有什么方法可以使我的項目保持完整,但是可以阻止ES啟動(嵌入)?
我的目標是暫時不使用ES時加快重啟速度。
或者,當然,我也可以將ES作為單獨的服務器運行,但是我不想浪費時間。
謝謝
將以下exclude
添加到您的@SpringBootApplication
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration;
@SpringBootApplication(exclude = ElasticsearchAutoConfiguration.class)
在您本地的application.properties
spring.autoconfigure.exclude = org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration,org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration
在生產中覆蓋以強制連接
spring.data.elasticsearch.cluster-nodes = someip:9300
spring.autoconfigure.exclude = none
您將需要使ElasticsearchTemplate @Lazy
或將其放在@Profile("production")
類下的概率
如果您使用的是Java High Level REST Client,則解決方案如下:
@EnableAutoConfiguration(exclude = RestClientAutoConfiguration.class
)
我發現這種方法可以在Spring Boot中禁用/啟用Elasticsearch
在application.properties中:
elastic_enable=false
在彈性配置文件中:
@Value("${elastic_enable}") boolean elastic_enable;
@Bean public Client a() throws UnknownHostException {
if (elastic_enable)
return TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(elastic_host), 9300));
else
return TransportClient.builder().build();
}
您應該排除這兩個Spring Boot Auto Configurations:
ElasticsearchAutoConfiguration.class, ElasticsearchDataAutoConfiguration.class
另外,如果您的Elastic擁有@Configuration
類,或者ElasticsearchTemplate
@Bean
,請確保將其注釋掉。
通過在我的@SpringBootApplication中添加以下排除,我剛剛在Spring Boot 1.5.8中禁用了嵌入式Elasticsearch。
希望這會有所幫助。
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration;
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration;
@SpringBootApplication(exclude = {ElasticsearchAutoConfiguration.class,ElasticsearchDataAutoConfiguration.class, ElasticsearchRepositoriesAutoConfiguration.class})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.