没有全球系统地图,让Stuart Sierra的组件和lein-ring很好地发挥作用

时间:2017-07-05 11:15:27

标签: clojure global-variables reload compojure ring

我一直在使用lein-ring一段时间,特别是我觉得非常有帮助的自动重装设施。

虽然我喜欢苹果酒中重新加载的工作流程 - 基于Stuart Sierra的user.clj变体 - 我还有一个用例,其中有一堆微服务从Docker组合开始与command: lein ring server-headless

在寻求依赖注入解决方案来改进我的测试/模拟之前,这对我来说在过去几个月里工作得非常好。

随着主机卷安装到各个项目,当我更改组合中任何服务的代码时,lein-ring负责重新加载,允许我按照我的方式执行集成级别和探索性测试(不重启真的有助于动力)。

但是,我刚刚开始使用component,并且在没有引入全局系统映射的情况下,我无法看到获得lein-ring重新加载优势的方法。 / p>

我已经创建了一个最小的重新制作的地方,并希望有人可以建议我的目标是否可行。

https://github.com/codeasone/component-reload-issue

问题:我是否有办法通过lein-ring实现我想要的重新加载行为,同时还保持component带来的封装和测试优势没有引入全局system-map并为demo-routes添加组件化和DI?

0 个答案:

没有答案