我正在跟随一本书学习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{}