条件装配:满足Conditional指定的条件,则进行组件注入
有很多派生出来的注解
我们举例使用ConditionalOnBean说明
import com.daijunyi.springboot1.bean.Person;
import com.daijunyi.springboot1.bean.User;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyConfig {
// @Bean("user")
public User user(){
return new User();
}
@ConditionalOnBean(name = {"user"})//如果容器中有user 我们才生成bean
@Bean
public Person person(){
return new Person();
}
}
然后测试代码
package com.daijunyi.springboot1;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class SpringBoot1Application {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringBoot1Application.class, args);
boolean user = run.containsBean("user");
System.out.println("是否存在user:"+user);
boolean person = run.containsBean("person");
System.out.println("是否存在 person:"+person);
}
}
运行结果
是否存在user:false
是否存在 person:false
Process finished with exit code 0
发现person也不存在了
这个注解也可以加在类上面,这样会要条件成立整个类才会条件成立