假設我有一個基礎項目,我將在其他項目中用作依賴項。在這個基礎項目中,我有一個我想要進行自定義的組件。爲了簡化,我們稱之爲工具。 Base項目正在使用不同類別的工具。 是否可以重寫新項目中Tools組件的方法,並使Base使用重寫的方法?從依賴關係覆蓋@Component
對不起,如果這是一個基本的問題,但我沒有找到任何關於此。
假設我有一個基礎項目,我將在其他項目中用作依賴項。在這個基礎項目中,我有一個我想要進行自定義的組件。爲了簡化,我們稱之爲工具。 Base項目正在使用不同類別的工具。 是否可以重寫新項目中Tools組件的方法,並使Base使用重寫的方法?從依賴關係覆蓋@Component
對不起,如果這是一個基本的問題,但我沒有找到任何關於此。
如果您掃描原始組件bean的原始軟件包,請停止掃描軟件包並自行擴展並掃描新實現的軟件包。它應該工作。換句話說,你可以定義一個BeanPostProcessor
並將其替換爲你的。兩者都應該正常工作。
謝謝,BeanPostProcessor正在取代組件。 – Smaniotto
已經有一段時間了,但我想分享一個非常簡單的方法來做到這一點。我簡直不敢相信它有多簡單。
只需擴展想要覆蓋的組件,並在其中添加@Primary即可。現在
@Component
public class Parent {
@Primary
@Component
public class Child extends Parent {
,您的應用程序將使用兒童家長,而不是家長那裏被@Autowired
認爲你會需要根據事件代碼與事件處理程序。 –