@ConditionalOnProperty(name = "属性名", havingValue = "对应的值", matchIfMissing = false)
#name="属性名"
#havingValue="属性对应的值"
#matchIfMissing=true 或者false,true 说明如果没有对应的配置属性,也会将bean注入进去,false则
是如果没有对应的配置属性则不注入
这个注解的作用是当这个属性的值等于havingValue中的值的时候则会将bean进行注入,所以都是和@bean
,@Compant 等声明成bean对象的注解配合使用
下面是我在yml文件中的属性配置,我的application-prod.yml中server.port是28080.
在application-prod.yml中server.port是11111.
server:
port: 28080
我在配置定时任务的时候用到了这个@ConditionalOnProperty
下面是我代码中的运用:
@Component
@ConditionalOnProperty(name = "server.port", havingValue = "28080", matchIfMissing = false)
public class AllowanceTask {
}