是否可以将包中的所有类注册为Spring Bean
我熟悉基于Springs
Java的配置选项,包括使用注记@Component和@Configuration与@Bean注记结合使用以注册Spring Bean。
但是,将体面大小的项目转换为Spring时,系统地触摸项目中的所有类并用@Configuration@Beans
更新或用注释每个类可能会非常耗费人力@Component。我们有一个大的Groovy项目要转换,我想简化这个过程。
Spring中提供了一种工具,可让您告诉Spring自动配置特定软件包中的所有有效bean候选类吗?
如果没有,还有哪些其他选项可用?
回答:
ClassPathBeanDefinitionScanner 是你所需要的全部。
public class Main { public static void main(String[] args) {
GenericApplicationContext context = new GenericApplicationContext();
ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(context, false);
scanner.addIncludeFilter((metadataReader, metadataReaderFactory) -> true);
scanner.scan("net.company.name");
context.refresh();
A a = context.getBean(A.class);
System.out.println(a.toString());
}
}
如果需要,可以在包含过滤器中传递自定义逻辑。在当前版本中,提供的包中的每个类都将作为bean包含在内。
但是不可能自动地在类上建立正确的依赖关系结构,这实际上取决于所需的作用域。您需要用手来做。
以上是 是否可以将包中的所有类注册为Spring Bean 的全部内容, 来源链接: utcz.com/qa/412288.html
