gpt4 book ai didi

spring - @ConditionalOnProperty 注释的目的是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:02:28 25 4
gpt4 key购买 nike

刚刚修改了spring boot的配置,遇到了

@ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views") 

来自 org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration

@Bean(name = { "connect/twitterConnect", "connect/twitterConnected" })
@ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views")
public View twitterConnectView() {
return new GenericConnectionStatusView("twitter", "Twitter");
}

我不明白这个注释的目的。我想这可能只有在属性值存在时才能使用 bean(例如“spring.social”、“auto-connection-views”)。

最佳答案

注解用于根据属性的配置有条件地创建 Spring bean。在您在问题中显示的用法中,只有 spring.social.auto-connection-views 属性存在并且它的值不是 false 时才会创建 bean >。这意味着,要创建这个 View bean,您需要设置 spring.social.auto-connection-views 属性,并且它的值必须不是假的。

您可以在整个 Spring Boot 代码库中找到此注解的许多其他用途。另一个例子是:

@ConditionalOnProperty(prefix = "spring.rabbitmq", name = "dynamic", matchIfMissing = true)
public AmqpAdmin amqpAdmin(CachingConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory);
}

注意 matchIfMissing 的使用。在这种情况下,如果 spring.rabbitmq.dynamic 属性存在并且值不是 false 该属性根本不存在。这使得 bean 的创建选择退出,而不是问题中选择加入的示例。

关于spring - @ConditionalOnProperty 注释的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26394778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com