簡體   English   中英

Spring-如何避免實現在協作服務之間鎖定

[英]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.

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