在库中使用依赖注入

6 java dependency-injection

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

H M*_*les 4

如果不使用 Spring 或 Guice,注入依赖项的最佳方法是什么?

如果您的库是用 DI 友好的风格编写的。作为一个简单的 java API,它应该相当容易使用。想想你过去与春天的经历。有几个库与 spring 模型完美契合,但都是在 spring 之前编写的。我不认为 anew后面跟着几个setXX然后调用真正的工作方法有什么不好。请格外小心,因为除其他外,您的客户可能会忘记调用initspring 可靠调用的方法。

我是否应该考虑使用工厂方法之类的方法来实例化和连接对象?依赖项全部位于库内,因此让应用程序实例化每个依赖项来创建主对象似乎并不合适。

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

或者也许你可以包括 guice。许可证是 Apache。就像 Java 本身的一整块一样。