[英]Spring - how to avoid implementation lock in between collaborating services
我正在編寫一個使用spring進行DI的小型框架。 我有許多相互協作的服務。
ServiceA引用了ServiceB-引用了ServiceC等。所有這些都預裝在spring配置xml中。
當用戶嘗試覆蓋其中的一種實現(例如說ServiceB和他自己的說說ChildServiceB)時,就會發生此問題。 現在,我真正想要的是應該將用戶ChildSerivceB連接到ServiceA。 春天可以做嗎? 如果沒有,那么此方案的最佳設計模式是什么?
我正在尋找像春天一樣晚裝的東西。
我希望在這種情況下,用戶的彈簧配置必須盡可能小。
其他說明:
我將接口用於所有服務
為了使使用默認服務的人員容易使用,jar中提供了spring congiuration framework-beans.xml,他們只需要實例化即可。
想要覆蓋實現的用戶可以創建自己的bean.xml,但這就是我的絆腳石,他們如何覆蓋framework-beans.xml的“接線”?
當用戶嘗試覆蓋其中的一種實現(例如說ServiceB和他自己的說說ChildServiceB)時,就會發生此問題。 現在,我真正想要的是應該將用戶ChildSerivceB連接到ServiceA。 春天可以做嗎? 如果沒有,那么此方案的最佳設計模式是什么?
1使用接口編程
2讓用戶為ServiceB
實現自己的服務
3在Spring xml中配置Bean
<bean name="serviceB" class="com.something.DefaultServiceBImpl"/>
現在,如果您希望用戶擁有自己的實現,只需將其更改為
<bean name="serviceB" class="com.something.CustomServiceBImpl"/>
並在Class使用界面
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.