通过@Configuration配置无法获取@Bean标注的类对象

项目场景:

学习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类放在不同级的文件夹下,比如
通过@Configuration配置无法获取@Bean标注的类对象_第1张图片
如图,项目启动类Application在chapter02下,而config和chapter02是同级文件夹,把MyConfig文件放在config文件夹下就会找不到@bean所标注的类


解决方案:

将MyService类放置在与项目启动类Application同一个的文件夹chapter02下,或者同级文件夹,比如通过@Configuration配置无法获取@Bean标注的类对象_第2张图片

这里把MyConfig放在和项目启动类同一级的domain文件夹

你可能感兴趣的:(java,java,spring,boot)