Spring框架相對較新,所以不確定我想要做的事情是否可行。
我有以下非彈簧類/介面。
package a.b.c;
public interface Dictionary {
}
package a.b.c;
public class EnglishDictionary implements Dictionary {
}
package a.b.c;
public class FrenchDictionary implements Dictionary {
}
我想將這些類注入到 Spring 托管應用程式中。所以我創建了一個這樣的配置類
@Configuration
@ComponentScan({"a.b.c")}
public class AppConfig {
@Bean
Dictionary englishDictionary() {
return new EnglishDictionary();
}
@Bean
Dictionary frenchDictionary() {
return new FrenchDictionary();
}
}
并在這樣的 Spring 組件類中使用這些字典
@Component
public class MyClass {
@Autowired
Dictionary englishDictionary;
}
但是,應用程式拒絕以一條錯誤訊息開始,該訊息說“欄位 englishDictionary 需要一個無法找到的 'abcDictionary' 型別的 bean。請考慮在您的配置中定義一個 'abcDictionary' 型別的 bean。
我究竟做錯了什么?
謝謝
uj5u.com熱心網友回復:
您的AppConfig課程沒有被 Spring 背景關系拾取,這就是您收到此例外的原因。請確認您的班級與您的AppConfig班級在同一個(或在同一個)包中Main。
換句話說,如果你的Main類在包中com.example.demo但你的AppConfig類在com.example.beans你的 Spring 應用程式中將無法啟動。
uj5u.com熱心網友回復:
從我的角度來看,更好的解決方案是在類級別撰寫 @Component(from Spring) 注釋。
package a.b.c;
@Component
public class EnglishDictionary implements Dictionary {
}
package a.b.c;
@Component
public class FrenchDictionary implements Dictionary {
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/412175.html
標籤:
下一篇:Spring集成-http入站
