使用@ConditionalOnProperty注解,通过修改application.yml来控制@Configuration是否生效.
eg
配置类:
@Configuration
@ConditionalOnProperty(prefix = "spring.elasticsearch", name = "enable", havingValue = "true")
public class EsConfig {
//prefix为配置文件中的前缀,
//name为配置的名字
//havingValue是与配置的值对比值,当两个值相同返回true,配置类生效.
@Bean
public ElasticsearchClient elasticsearchClient(RestClient restClient) {
// Create the transport with a Jackson mapper
ElasticsearchTransport transport = new RestClientTransport(
restClient, new JacksonJsonpMapper());
// And create the API client
return new ElasticsearchClient(transport);
}
}
配置文件:
elasticsearch:
# 是否开启 elasticsearch 搜索引擎功能:true-开启 false-不开启
enable: true
当配置文件中值为true时,配置类生效;反之不生效
@Builder@Builder注解的作用主要是用来生成对象,并且可以为对象链式赋值,其会生成一个全参的构造函数



