2017-05-10 126 views
0

如何更改已部署應用程序中的依賴關係。因此,當應用程序啓動時,它會通過電子郵件發送通知,但在某些時候,我們應該可以通過短信更改通知。更改運行彈簧應用程序中的依賴關係

如何在Spring Boot中做到這一點?

+1

這就是一個策略模式 –

+0

@AmerQarabsa一個工作,你可以請給舉例一些鏈接該怎麼做?謝謝 – Romper

回答

2

這就是一個策略模式工作,它沒有任何與彈簧本身

你應該有2個戰略之一的電子郵件和一個短信,在每個戰略,你會自動連接所需的豆。

檢查此鏈接戰略實施

https://www.tutorialspoint.com/design_pattern/strategy_pattern.htm

+0

您認爲在運行時選擇所需策略的最佳方法*?除了將兩個策略注入容器並以聲明方式選擇所需的一個(通過簡單的if/switch語句),是否有更好的選擇? –

+0

無論何時我們需要在運行時更改行爲時都會使用策略,而此行爲不能以分層方式呈現,您需要一個策略界面,並且使用策略的分配應該簡單地使用條件 –

+0

我不喜歡關於這一點,在大多數情況下,你只能使用兩種策略而不使用策略。我想解決這個問題的一個選擇就是明確地獲取所需的bean。 –

0

你可以在一個單例的bean定義的屬性?我們稱它爲notificationMethod並默認分配EMAIL。 (該屬性可以是枚舉或字符串或int無論)。 您需要一個控制器方法來更改屬性。

@Autowired 
private MyNotificationMethodHolderService service; 
@RequestMapping(value = "/changeNotificationMethod") 
@ResponseBody 
public String change(@RequestParam("methodName") String methodName) { 
    service.setNotificationMethod (methodName); 
} 

您的通知服務檢查屬性並根據值發送通知(策略模式根據註釋)。

如果您需要更改方法調用

<HOST>:<PORT>/context/changeNotificationMethod?methodName=SMS