条件装配:满足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;@Configurationpublic class MyConfig {// @Bean("user")public User user(){return new User();}@ConditionalOnBean(name = {"user"})//如果容器中有user 我们才生成bean@Beanpublic 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;@SpringBootApplicationpublic 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:falseProcess finished with exit code 0
发现person也不存在了
这个注解也可以加在类上面,这样会要条件成立整个类才会条件成立
