码迷,mamicode.com
首页 > 其他好文 > 详细

What is purpose of @ConditionalOnProperty annotation?

时间:2017-02-12 21:21:42      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:color   ann   auto   ota   other   nal   this   eric   another   

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?

标签:color   ann   auto   ota   other   nal   this   eric   another   

原文地址:http://www.cnblogs.com/zhao1949/p/6391673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!