Java 在库中使用依赖项注入

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

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

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

如果您的库是用DI友好的习惯用法编写的。作为一个严格的java API,它应该相当容易使用。想想你过去对春天的经历。有几个库非常适合spring模型,但都是在spring时间之前编写的。我看不出一个
新的
然后是几个
setXX
然后是对实际工作方法的调用有什么坏处。只需格外小心,因为除其他外,您的客户机可能会忘记调用spring可靠调用的thouse
init
方法

我是否应该考虑工厂方法来实例化和布线对象?依赖项都在库中,因此让应用程序实例化每个依赖项来创建主对象似乎并不合适

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

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