Spring Boot @Component与@Configuration的区别

如果在编写的config类上添加@Component与@Configuration注解,你如果在别的地方进行注入的时候,都会能够完成注入的功能。点开@Configuration注解,发现本质也是@Component。但是仔细发现,注入后得到的对象是不一样的。@Component得到不是同一个对象,@Configuration得到的是同一个对象。

下面示例:

@Configuration
//@Component
public class MyBeanConfig {
    @Bean
    public Org org() {
        return new Org();
    }

    @Bean
    public Unit unit() {
        Unit unit = new Unit();
        unit.setOrg(org());
        return unit;
    }

}

Spring Boot @Component与@Configuration的区别_第1张图片

  

//@Configuration
@Component
public class MyBeanConfig {
    @Bean
    public Org org() {
        return new Org();
    }

    @Bean
    public Unit unit() {
        Unit unit = new Unit();
        unit.setOrg(org());
        return unit;
    }

}

Spring Boot @Component与@Configuration的区别_第2张图片

你可能感兴趣的:(SpringBoot)