Spring 使用构造型注释创建 Bean 时,上下文似乎无法识别它。抛出 NoSuchBeanDefinitionException

Spring Context doesn't seem to recognize a Bean when creating it with stereotype annotations. Throws NoSuchBeanDefinitionException

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

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

然后我创建了一个 @Configuration class 来扫描 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);
  }
}

我尝试获取 Parrot bean 的代码行抛出以下异常: NoSuchBeanDefinitionException: 没有 'main.parrot.Parrot' 类型的合格 bean 可用

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

提前致谢

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

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