Spring Context 在使用刻板型注释创建 Bean 时似乎无法识别它。抛出 NoSuchBeanDefinitionException



我正在跟随一本书学习Spring生态系统的一些模块。目前正在尝试使用构造型注释创建bean。我已经编写了一个简单的Java类,并将其标记为组件:

package main.parrot;
@Component
public class Parrot {
private String name;
// getters and setters //
}

然后我创建了一个@Configuration类来扫描Parrot组件:

package main;
//imports
@Configuration
@ComponentScan(basePackages = "parrot")
public class ProjectConfig{}

在我的主要方法中,我使用上面的配置创建了一个spring上下文,并且我正在尝试访问bean Parrot:

package main;
//imports//
public class Main{
public static void main(String...args){
var context = new AnnotationConfigApplicationContext(ProjectConfig.class);
var p = context.getBean(Parrot.class);
}
}

行代码,我试图让鹦鹉bean抛出以下异常:NoSuchBeanDefinitionException:没有"main.parrot"类型的合格bean。鹦鹉的可用

我只是不明白为什么这个配置找不到Parrot bean。如果有人能帮我澄清这个问题,我将非常感激。

提前谢谢你

您需要更改basePackages以包含完整的软件包名称:

package main;
//imports
@Configuration
@ComponentScan(basePackages = "main.parrot")
public class ProjectConfig{}

相关内容

  • 没有找到相关文章

最新更新