What is purpose of @ConditionalOnProperty annotation?
Posted zhao1949
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了What is purpose of @ConditionalOnProperty annotation?相关的知识,希望对你有一定的参考价值。
http://stackoverflow.com/questions/26394778/what-is-purpose-of-conditionalonproperty-annotation
****************************************************
I just modified spring boot configuration, and encountered
@ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views") from org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration.java @Bean(name = { "connect/twitterConnect", "connect/twitterConnected" }) @ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views") public View twitterConnectView() { return new GenericConnectionStatusView("twitter", "Twitter"); }
answers
The annotation is used to conditionally create a Spring bean depending on the configuration of a property. In the usage you‘ve shown in the question the bean will only be created if the spring.social.auto-connection-views
property exists and it has a value other than false
. This means that, for this View
bean to be created, you need to set the spring.social.auto-connection-views
property and it has to have a value other than false.
如果property spring.social.auto-connection-views
存在,并且值不为false,创建bean.
You can find numerous other uses of this annotation throughout the Spring Boot code base. Another example is:
@ConditionalOnProperty(prefix = "spring.rabbitmq", name = "dynamic", matchIfMissing = true) public AmqpAdmin amqpAdmin(CachingConnectionFactory connectionFactory) { return new RabbitAdmin(connectionFactory); }
Note the use of matchIfMissing
. In this case the AmqpAdmin
bean will be created if the spring.rabbitmq.dynamic
property exists and has a value other than false
or the property doesn‘t exist at all. This makes the creation of the bean opt-out rather than the example in the question which is opt-in.
如果property spring.rabbitmq.dynamic存在,并且值不为false,创建bean
matchIfMissing = true, 如果改属性条目不存在,创建bean.
以上是关于What is purpose of @ConditionalOnProperty annotation?的主要内容,如果未能解决你的问题,请参考以下文章
What is the bottleneck and weakness of AlphaGo?
What is your definition of a DBA?
What is the maximum length of a URL in different browsers?
What is this "def" I heard of?