Spring Boot的条件注解
和条件装配
是用于根据特定条件
来控制Bean的创建和装配
的重要特性。条件注解可以根据不同的条件来判断是否满足某种条件,从而决定是否创建特定的Bean。以下是条件注解和条件装配的使用方法:
一、条件注解示例
@ConditionalOnClass
: 当指定的类存在于类路径中时才会创建Bean。@ConditionalOnBean
: 当指定的Bean存在时才会创建当前Bean。@ConditionalOnProperty
: 基于配置属性的条件注解,根据配置文件中的属性值决定是否创建Bean。
代码如下:
public class MyService {
private String message;
public MyService(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
二、条件装配示例
创建一个自动配置类 MyServiceAutoConfiguration ,根据条件注解来控制是否自动配置 MyService Bean:
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConditionalOnClass(MyService.class)
public class MyServiceAutoConfiguration {
@Bean
public MyService myService() {
return new MyService("Hello, this is auto-configured message");
}
}
在这个示例中, MyServiceAutoConfiguration 类使用了 @ConditionalOnClass(MyService.class)
注解,表示只有当 MyService 类存在于类路径中时才会自动配置 MyService Bean。如果 MyService 类不存在,则不会创建该Bean。