我有一个用例,我想提供一个简单的API来扩展我的scala应用程序的功能。
我花了最近几天试图找到一个java / scala DI框架或库来为我做以下事情:
我越来越倾向于使用OSGi DS,我非常喜欢它,除非我认为它是#4的过度杀伤。
我看着guice,焊接,scaladi和macwire,并没有立即看到一个简单的方法来做到这一点。我的目标是"插件"作者不必以任何方式了解我的注射/ IoC解决方案,除了偶尔的注释(最好是JSR330)在注射部位,我愿意处理更丑陋的事情。 : - )
我是否必须在这里推出自己的解决方案,使用OSGi,或者我在上述库中遗漏了一些小事?
ps:我试图避开OSGi主要是因为它与应用程序框架的交互我使用(akka - 不确定bundle / DS生命周期与单个程序混合良好演员系统)答案 0 :(得分:1)
我看看Scaldi目前提供的功能。我发现它已经足够成熟了。所以没有什么难以使用这个DI库来实现你的目标。例如,您只能实现用于在某些配置文件或其他任何内容中进行特定注释/指定搜索的代码。
答案 1 :(得分:1)
如果您喜欢DS(并且它似乎非常适合您的问题)那么为什么不解决Akka的任何问题?我很确定其他人愿意提供帮助,因为它看起来像是一个有趣的组合。
答案 2 :(得分:1)
如果你能负担得起,它可能是最好的(不仅适合你,而是适用于整个生态系统)符合彼得的建议。
从语用上讲,Java有SPI来自OOTB,可能是最简单的方法。