java - 是否有一个简单的框架允许在独立程序中进行依赖注入(inject)?

标签 java dependency-injection

我们基本上需要能够在启动时调整行为,方法是在我们的应用程序中提供由各种工厂生成的所需类(以避免"new"运算符的硬绑定(bind))。

我知道这是由几个大型框架提供的,但我一直在寻找独立 Java 应用程序易于使用的东西,而不是庞大的。

有什么建议吗?


编辑:根据我的经验,框架在成熟的过程中往往会变大(也变得复杂)。作为主要重构(技术债务)的一部分,我需要将其改造为遗留应用程序,因此使用的库必须简单。我不介意在我们的应用程序中做一些编码,但它必须非常清楚正在发生的事情。 AOP 倾向于将东西移开,这可能会使应用程序更难维护。


编辑:我们现在已经到了真正需要做出决定的地步。该应用程序可能会存在数十年,因此我们需要做出一个可逆的决定,并使用一个有望维持很长时间的框架。我真的很喜欢 Guice 提供的静态类型检查,但不喜欢注释显式绑定(bind)到 Guice 而不是像 Spring 中那样是外部的。我还喜欢使用 Guice 时代码看起来比 Spring 更简洁。我们需要一些强大而有用的东西。目前我们需要的不仅仅是 DI。是否有一个明确的用例表明适用其中之一?


编辑 2011-07-27:最终决定是在代码中使用 JSR-330 API,并根据每个项目选择是使用 Spring、Guice 还是 Weld。对于独立应用程序,Guice 在 JSR-330 实现方面表现良好。

最佳答案

您始终可以使用 Spring Framework 2.5。它很大,但如果您打算只使用 DI,则可以使用 spring-core 和 spring-beans 模块,它们非常小(大约 500KB 和 300KB)。

还有 Google Guice 2.0,它带有一个只有基本内容(没有 AOP)的包,大小为 430KB。

关于java - 是否有一个简单的框架允许在独立程序中进行依赖注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1333438/

相关文章:

java - 如何在 OK-HTTP header 中添加非 ASCII 字符串?

java - 如何更改对应@NotNull注解返回的响应JSON

java - 控制反转与反射

java - 是否可以获取对 ExpandoValue 实例/记录进行更改的用户(或用户 ID)?

java - 在Java程序中计算zip文件的md5哈希值

java - 使用 Spring + 没有为参数指定值调用 Postgres 存储过程

c# - Identity Server 4 使用 IConfiguration 创建客户端

c# - 使用简单注入(inject)器注入(inject)控制台应用程序

android - 如何使用 Dagger2 将 Activity 范围内的依赖项替换为模拟

.NET:未设置必需属性时抛出哪个异常?