我正在寻找一种方法来防止ElasticSearch在Spring Boot项目中启动(嵌入式或单独的服务器)。 ES目前尚未投入使用,但将在项目的后期阶段使用。
如果从POM中删除行,我的代码需要进行重大更新,因为无法再找到ES的所有注释。
有没有办法让我的项目保持完整,但阻止ES启动(嵌入式)?
我的目标是在不使用ES的情况下暂时加快重启。
当然,我也可以将ES作为一个单独的服务器运行,但我不想花时间。
由于
答案 0 :(得分:3)
将以下exclude
添加到您的@SpringBootApplication
import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration;
@SpringBootApplication(exclude = ElasticsearchAutoConfiguration.class)
答案 1 :(得分:1)
在您当地的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")
类
答案 2 :(得分:0)
我发现这种方法可以在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();
}
答案 3 :(得分:0)
您应该排除这两个Spring Boot自动配置:
ElasticsearchAutoConfiguration.class, ElasticsearchDataAutoConfiguration.class
此外,如果您的弹性为@Configuration
课程,@Bean
为ElasticsearchTemplate
,请务必将其评论。
答案 4 :(得分:0)
我刚刚在spring boot 1.5.8中禁用了嵌入式elasticsearch,方法是将以下排除添加到我的@SpringBootApplication中。
希望这可以提供帮助。
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})
答案 5 :(得分:0)
如果您使用的是Java High Level REST Client,则解决方案如下:
@EnableAutoConfiguration(exclude = RestClientAutoConfiguration.class
)