2017-05-10 78 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