【发布时间】:2020-11-17 03:17:09
【问题描述】:
我有四个这样的javaclass;
我使用弹簧 5.3.1 ; openjdk 11 ;这是我的代码;
Main.java
public class Main {
public static void main(String[] args) {
var registry = new SimpleBeanDefinitionRegistry();
var scanner = new ClassPathBeanDefinitionScanner(registry);
scanner.setIncludeAnnotationConfig(false);
scanner.scan("org.scx.*");
for (var name : registry.getBeanDefinitionNames()) {
System.err.println(name);
}
}
ClassOne.java
@Component
public class ClassOne {
}
ClassTwo.java
@Component
public class ClassTwo {
@Bean
public ClassThree classThree() {
return new ClassThree();
}
}
ClassThree.java
public class ClassThree {
}
现在我运行它;只需打印这些;
classOne
classTwo
我找不到 ClassThree 为什么? 请问我该怎么办。
我完成了;使用 SpringApplicationRunListener ;非常感谢大家
【问题讨论】:
-
你试过没有
setIncludeAnnotationConfig(false)吗?使用false,它不会注册annotation config 后处理器,而@Bean是用于配置bean 的注解。 -
因为它只是一台扫描仪。它将检测
ClassTwo,但不会处理类上的注释。这是ApplicationContext而不是扫描仪的任务。
标签: java spring spring-boot