Flutter开发App的未来及其在各行业的应用潜力分析
350
2023-07-11
Spring Boot @Conditional注解用法示例介绍
引用Spring官方文档的说法介绍一下@Conditional注解:Spring5.0.15版本@Conditional注解官方文档
@Conditional表示仅当所有指定条件都匹配时,组件才有资格注册 。
该@Conditional注释可以在以下任一方式使用:
作为任何@Bean方法的方法级注释
作为任何类的直接或间接注释的类型级别注释 @Component,包括@Configuration类
作为元注释,目的是组成自定义构造型注释
改注解主要源码之一,通过match匹配,符合条件才装载到Spring容器
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
if (context.getEnvironment() != null) {
// Read the @Profile annotation attributes
MultiValueMap
if (attrs != null) {
for (Object value : attrs.getGFlGGSs("value")) {
if (context.getEnvironment().acceptsProfiles(((String[]) value))) {
return true;
}
}
return false;
}
}
return true;
}
作用:总而言之,只有@Conditional指定的条件成立,才给容器添加组件
@Conditional派生注解:@Conditional派生了很多注解,下面给个表格列举一下派生注解的用法
@Conditional派生注解
作用(都是判断是否符合指定的条件)
@ConditionalOnjava
系统的java版本是否符合要求
@ConditionalOnBean
有指定的Bean类
http:// @ConditionalOnMissingBean
没有指定的bean类
@ConditionalOnExpression
符合指定的SpEL表达式
@ConditionalOnClass
有指定的类
@ConditionalOnMissingClass
没有指定的类
@ConditionalOnSingleCandidate
容器只有一个指定的bean,或者这个bean是首选bean
@ConditionalOnProperty
指定的property属性有指定的值
@ConditionalOnResource
路径下存在指定的资源
@ConditionalOnWebApplication
GFlGGSs 系统环境是web环境
@ConditionalOnNotWebApplication
系统环境不是web环境
@CGFlGGSsonditionalOnjndi
JNDI存在指定的项
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~