@Component和@Configuration作为配置类的区别

@Component和@Configuration都可以作为配置类但两者是有区别的,上代码

@Configuration
public class MyTestConfig {

    @Bean
    public People p(){
        People p= new People ();
        p.setCar(car());
        return p;
    }

    @Bean
    public Car car(){
        Car car = new Car();
        car.setId(1);
        car.setName("car");
        return car;
    }
}

测试代码如下

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestApplication {

    @Autowired
    private Car car;

    @Autowired
    private People p;

    @Test
    public void contextLoads() {
        boolean b= p.getCar() == car;
        System.out.println(result ? "同一个car" : "不同的car");
    }

}

打印结果如下:
同一个car


替换为Component后的打印结果:

不同的car

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。