簡體   English   中英

spring boot 的@Autowired 可以從使用 GUICE 進行 DI 的 jar(包含在類路徑中)注入依賴項嗎?

[英]Can spring boot's @Autowired inject dependencies from a jar(included in classpath) which is using GUICE for DI?

我有一個使用guice進行 DI 的基礎包。 我在我使用 Spring boot 的其他項目中使用它作為庫所以我可以將依賴項從那個 jar 自動裝配到我的 spring boot 項目。 假設基礎包的工件是 com.package.dependency 而我的 spring boot 項目是com.example.spring-boot我試過

 @ComponentScan(basePackages = {"com.example.spring-boot","com.package.dependency"})

但它不起作用。

如果有注釋為自動裝配候選的類(@Bean,@Component,..)

@ComponentScan 不會找到任何自動裝配的候選者,除非外部庫中有任何符合自動裝配條件的候選者。

相反,您可以定義一個 @Bean 注釋並返回要在 @Configuration 類中返回的類的新實例。

@Configuration
public class MyConfig {

  @Bean
  public MyExternalBean myExternalBean() {
     return new MyExternalBean();
  }
}

在你需要使用它的類中,寫:

@Autowired
private MyExternalBean myExternalBean;

如果您需要自動配置,請參考: https : //docs.spring.io/spring-boot/docs/2.0.0.M3/reference/html/boot-features-developing-auto-configuration.html 在這里,您使用 spring.factories 並指定可用於自動配置的類,以便您無需在使用該外部 jar 的每個項目中指定 @ComponentScan(適用於您或您的公司開發的 jar 用於其他項目和不適用於第三方罐子)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM