项目场景:
学习Spring boot使用@Configuration编写自定义配置类
问题描述
通过配置MyConfig类,无法在测试中获取@Bean标注的类对象MyService
@Configuration
public class MyConfig {
@Bean(name = "myService") //将标注的返回值存到spring容器中
public MyService myService() {
return new MyService();
}
}
测试类中:
@Autowired
private ApplicationContext applicationContext;
@Test
void contextLoads() {
System.out.println(applicationContext.containsBean("myService"));
}
一直返回false
原因分析:
我把MyConfig和项目启动类Application类放在不同级的文件夹下,比如

如图,项目启动类Application在chapter02下,而config和chapter02是同级文件夹,把MyConfig文件放在config文件夹下就会找不到@bean所标注的类
解决方案:
将MyService类放置在与项目启动类Application同一个的文件夹chapter02下,或者同级文件夹,比如
这里把MyConfig放在和项目启动类同一级的domain文件夹下
本文介绍在SpringBoot中使用@Configuration编写自定义配置类时,如何确保@Bean标注的方法能够正确地将实例注入到Spring容器中,并解决由于包扫描路径设置不当导致的注入失败问题。
221





