条件装配:满足Conditional指定的条件,则进行组件注入
    有很多派生出来的注解
    image.png

    我们举例使用ConditionalOnBean说明

    1. import com.daijunyi.springboot1.bean.Person;
    2. import com.daijunyi.springboot1.bean.User;
    3. import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
    4. import org.springframework.context.annotation.Bean;
    5. import org.springframework.context.annotation.Configuration;
    6. @Configuration
    7. public class MyConfig {
    8. // @Bean("user")
    9. public User user(){
    10. return new User();
    11. }
    12. @ConditionalOnBean(name = {"user"})//如果容器中有user 我们才生成bean
    13. @Bean
    14. public Person person(){
    15. return new Person();
    16. }
    17. }

    然后测试代码

    1. package com.daijunyi.springboot1;
    2. import org.springframework.boot.SpringApplication;
    3. import org.springframework.boot.autoconfigure.SpringBootApplication;
    4. import org.springframework.context.ConfigurableApplicationContext;
    5. @SpringBootApplication
    6. public class SpringBoot1Application {
    7. public static void main(String[] args) {
    8. ConfigurableApplicationContext run = SpringApplication.run(SpringBoot1Application.class, args);
    9. boolean user = run.containsBean("user");
    10. System.out.println("是否存在user:"+user);
    11. boolean person = run.containsBean("person");
    12. System.out.println("是否存在 person:"+person);
    13. }
    14. }

    运行结果

    1. 是否存在user:false
    2. 是否存在 person:false
    3. Process finished with exit code 0

    发现person也不存在了

    这个注解也可以加在类上面,这样会要条件成立整个类才会条件成立