zoukankan      html  css  js  c++  java
  • 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.
  • 相关阅读:
    day13-web前端之JS与JQuery
    day16-python项目Django框架之基础
    day12-HTML、CSS与blog页面讲解
    day11-MySQL数据操作索引备份触发器
    day10-python并发编程之多线程协程及MySQL
    day9-python并发编程之多进程多线程
    day8-异常处理与网络编程
    面向对象实战扩展(课外阅读)
    day7-面向对象之继承组合多态封装等
    python学习大纲
  • 原文地址:https://www.cnblogs.com/zhao1949/p/6391673.html
Copyright © 2011-2022 走看看