java - Spring boot @ComponentScan 与 @Import

标签 java spring spring-boot component-scan

我和我的 friend 讨论了@ComponentScan@Import。哪一个更好? 我们有两个不同的想法。

  1. @ComponentScan:易于使用,从组件导入所有bean 扫描。
  2. @Import:您需要知道要使用什么组件,无需全部扫描。

你的想法怎么样?哪一个更适合您使用?

谢谢!

最佳答案

@Import 通常用于导入带有 @Configuration/@Component 标记的 Java 配置类。因此,如果该组件中有一个 bean,Spring 会将其加载到应用程序上下文中。您只需输入组件或类的名称,Spring 就会为您提取它。

但是,通过使用@ComponentScan,您可以告诉应用程序要扫描哪些包以查找使用@Configuration/@Component(或任何 @Component 的 子注释(例如 @Service@Repository 等)并将它们全部加载到应用程序上下文中,以便在需要时可以 Autowiring 它们。如果有内部实例需要填充,Spring 会处理它。

您可以阅读有关 @Import 的更多信息和 @ComponentScan在各自的文档页面上。

这个page很好地解释了其中的差异。

关于java - Spring boot @ComponentScan 与 @Import,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61153698/

相关文章:

java - 在 oauth2 中使用 spring cloud gateway

javascript - 在 javascript 中从 servlet 渲染 blob

java - 解析 findInBackground 不添加到全局数组列表?

java - 为 Spring Web 服务分离 REST API 和实现

spring - Bean 验证 - 验证可选字段

java - 是否可以使用 hadoop 2.5.2 在 oozie 4.1.0 中运行 map reduce 作业

java - 使用 GWT 和 Spring Security 的条件 UI?

java - 在 Tomcat 5.5 中部署 web-app 时如何解决错误 listenerStart?

JavaPOET - 只有类有父类(super class),而不是 INTERFACE

spring-boot - @SpyBean 和 Mockito.any() 在验证期间