欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring中@ConditionalOnProperty注解的作用詳解

 更新時(shí)間:2024年01月19日 11:05:06   作者:bat在等我  
這篇文章主要介紹了Spring中@ConditionalOnProperty注解的作用詳解,@ConditionalOnProperty注解主要是用來判斷配置文件中的內(nèi)容來決定配置類是否生效用的,如果條件不匹配,則配置類不生效,需要的朋友可以參考下

@ConditionalOnProperty注解

@ConditionalOnProperty注解主要是用來判斷配置文件中的內(nèi)容來決定配置類是否生效用的,如果條件不匹配,則配置類不生效

1. 源碼

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
@Documented
@Conditional(OnPropertyCondition.class)
public @interface ConditionalOnProperty {
	// 數(shù)組,獲取對(duì)應(yīng)property名稱的值,與name不可同時(shí)使用
	String[] value() default {};
	// 配置屬性名稱的前綴,比如spring.http.encoding
	String prefix() default "";
	// 數(shù)組,配置屬性完整名稱或部分名稱
	// 可與prefix組合使用,組成完整的配置屬性名稱,與value不可同時(shí)使用
	String[] name() default {};
	// 可與name組合使用,比較獲取到的屬性值與havingValue給定的值是否相同,相同才加載配置
	String havingValue() default "";
	// 缺少該配置屬性時(shí)是否可以加載。如果為true,沒有該配置屬性時(shí)也會(huì)正常加載;反之則不會(huì)生效
	boolean matchIfMissing() default false;
}
  1. String[] value():屬性的名字,可與prefix組合使用,不可以與name同時(shí)使用
  2. String prefix():屬性的前綴,可與name組合使用
  3. String[] name():屬性的名字,可與prefix組合使用
  4. String havingValue():指定屬性的值和havingValue相同才會(huì)加載配置
  5. boolean matchIfMissing():缺少該配置屬性是否可以加載,默認(rèn)flase,如果少了不能加載;設(shè)置為true則缺少也可以加載

2. 范例

以swagger配置來舉例

配置文件

swagger:
  enabled: true

代碼

@EnableSwagger2
@Configuration
@ConditionalOnProperty(name = "swagger.enabled", havingValue = "true") // 如果配置文件中swagger.enabled的值為false,那么havingValue返回結(jié)果為false,該配置類就不生效
public class ErpSwaggerConfig extends DefaultSwaggerConfig {
    @Bean
    public Docket erpApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("erp")
                .genericModelSubstitutes(DeferredResult.class)
                .useDefaultResponseMessages(false)
                .forCodeGeneration(false)
                .pathMapping("/")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.ztbase.erp.controller"))
                .paths(PathSelectors.any())
                .build()
                .securitySchemes(setSecuritySchemes())
                .globalOperationParameters(getHeaderParameters())
                .apiInfo(apiInfo());
    }
}

到此這篇關(guān)于Spring中@ConditionalOnProperty注解的作用詳解的文章就介紹到這了,更多相關(guān)@ConditionalOnProperty注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論