gpt4 book ai didi

java - 在库中使用依赖注入(inject)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:42 24 4
gpt4 key购买 nike

我正在编写一个将由现有应用程序使用的 Java 库。我正在使用依赖注入(inject),所以测试更容易,而且我熟悉 Spring,所以我计划在测试时使用它来管理依赖注入(inject)。最终将使用该库的应用程序不是基于 Spring 的,但是,它目前也不使用任何类型的 IoC/DI 容器。我的问题是,如果不使用 Spring 或 Guice,注入(inject)依赖项的最佳方法是什么?我是否应该考虑使用工厂方法之类的方法来实例化和连接对象?依赖项都在库中,因此让应用程序实例化每个依赖项来创建主对象似乎并不合适。

最佳答案

what's the best approach for injecting dependencies if Spring or Guice are not used?

如果您的库是用 DI 友好的惯用语编写的。它应该很容易用作简单的 java API。想想你过去对 Spring 的体验。有几个库非常适合 spring 模型,但是是在 Spring 之前编写的。我不认为 new 后跟几个 setXX 后跟对 real work 方法的调用有什么不好。请格外小心,因为除其他事项外,您的客户端可能会忘记调用可靠调用的 init 方法。

Should I consider something like a factory method to instantiate and wire the objects? The dependencies are all inside the library, so it doesn't seem appropriate to have the application instantiate each dependency to create the main object.

让客户端应用程序决定。您正在提供图书馆。让 API 客户端连接它自己的对象。举个例子。稍后,可以使用相同的示例在客户端域上创建工厂方法。也许客户端应用程序有自己的配置方式,如果您的库提供的 API 足够灵活以利用它,那将是可取的。

或者您可以包含 guice。许可证是 Apache。就像一整 block Java 本身。

关于java - 在库中使用依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/715990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com