use*_*583 56 spring annotations spring-boot
我只修改了spring boot配置,并遇到了
@ConditionalOnProperty(prefix = "spring.social.", value = "auto-connection-views")
Run Code Online (Sandbox Code Playgroud)
从 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");
}
Run Code Online (Sandbox Code Playgroud)
我不明白这个注释的目的.我想这可能只有在存在属性值时才能使用bean(例如"spring.social","auto-connection-views").
And*_*son 102
注释用于根据属性的配置有条件地创建Spring bean.在您在问题中显示的用法中,只有在spring.social.auto-connection-views属性存在并且其值不是的情况下才会创建bean false.这意味着,View要创建此bean,您需要设置该spring.social.auto-connection-views属性,并且它必须具有false以外的值.
您可以在Spring Boot代码库中找到此批注的许多其他用法.另一个例子是:
@ConditionalOnProperty(prefix = "spring.rabbitmq", name = "dynamic", matchIfMissing = true)
public AmqpAdmin amqpAdmin(CachingConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory);
}
Run Code Online (Sandbox Code Playgroud)
注意使用matchIfMissing.在这种情况下,AmqpAdmin如果spring.rabbitmq.dynamic属性存在且bean 的值不是false 或者根本不存在该属性,则将创建bean .这使得bean的创建选择退出而不是选择加入的问题中的示例.
如果您在 TYPE 级别上使用此属性,即在您的 @Configuration 类之一上...请记住,在这种情况下,将根据默认属性文件对注释进行评估/检查,即 application.properties
@ConditionalOnProperty 在带有 @Configuration 的 TYPE 级别
| 归档时间: |
|
| 查看次数: |
70782 次 |
| 最近记录: |