Spring注解ConditionalOnProperty

通过属性值来控制configuration是否生效

@Configuration
@ConditionalOnProperty(name="config.enabled",havingValue = "true")
public class ConfigBean {
	//...
}

// 属性设置
config.enabled=true

单一属性

(不设置前缀 prefix )

name指定属性名
havingValue 指定属性的值
matchIfMissing 没有指定属性的时候,是否启用configuration,默认不启用

  • 设置属性,优先根据属性值去匹配
    Spring注解ConditionalOnProperty_第1张图片

  • 没设置属性,看 matchIfMissing 的值
    matchIfMissing default false

多属性值

设置前缀 prefix, 并且必须设置 name 或者value

这以两个值为例:

@Configuration
@ConditionalOnProperty(prefix="self",name={"a","b"},havingValue = "true")
public class ConfigBean {
	//...
}
// 属性设置
self.a=true
self.b=true
  • 都满足
    即:
    self.a=true
    self.b=true
    则生效

  • 任何一个属性不满足
    即:
    self.a=true
    self.b=false
    或者
    即:
    self.a=abc
    self.b=true
    则不生效

  • 一个满足 一个不设置
    即:
    self.a=true
    或者
    self.b=true
    此时看matchIfMissing
    为true则生效,否则不生效

你可能感兴趣的:(Spring,spring,注解)