在库中使用依赖注入

时间:2009-04-03 22:47:37

标签: java dependency-injection

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

1 个答案:

答案 0 :(得分:4)

  

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

如果您的图书馆是用DI友好的习语写的。它应该相当容易用作一个straitforward java API。想想你过去的春天经历。有几个库与弹簧模型完全吻合但是在春天之前写的。 new后跟几个setXX,然后调用实际工作方法,我认为没什么不好。只是要格外小心,因为除其他事项外,您的客户可能会忘记调用可靠呼叫的thouse init方法。

  

我应该考虑像工厂方法那样实例化和连接对象吗?依赖项都在库中,因此让应用程序实例化每个依赖项以创建主对象似乎不合适。

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

或许你可以加入guice。许可证是Apache。就像整个Java本身一样。

相关问题