@ConditionalOnProperty
使用@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注解的作用主要是用来生成对象,并且可以为对象链式赋值,其会生成一个全参的构造函数
@UtilityClass
一般作用于工具类上,在使用@UtilityClass注解后,所有的方法和属性都会被加上static关键字,并且该类会创建一个私有的空参构造器。