zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Spring @Conditional注解的使用详解编程语言

Spring编程语言 使用 详解 注解 Conditional
2023-06-13 09:20:45 时间

Spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足时才启用一些配置。

下面来介绍如何使用Condition

首先写一个类


import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.type.AnnotatedTypeMetadata; public class MyCondition implements Condition /** * 这里写自己的逻辑,只有返回true,才会启用配置 public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) return true; }

接下来就可以使用了

package com.test.spring; 

import java.io.Serializable; 

import org.springframework.context.annotation.Bean; 

import org.springframework.context.annotation.Conditional; 

import org.springframework.context.annotation.Configuration; 

@Configuration 

@Conditional(MyCondition.class) 

public class Config 

 @Bean 

 public Serializable createSerializable() 

 System.out.println("======000"); 

 return ""; 

} 

@Conditional(MyCondition.class)

这句代码可以标注在类上面,[email protected]

也可以标注在方法上面,只是对该方法启用配置

除了自己自定义Condition之外,Spring还提供了很多Condition给我们用

@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)

 

15728.html

cjava