DI和IOC使用核心java

时间:2012-09-13 12:10:10

标签: java reflection dependency-injection inversion-of-control

有没有办法使用核心java /反射来加载创建依赖项对象并将其作为依赖项设置为其他?

我可以做到,但在处理嵌套bean时面临问题。

最终,我对使用spring进行简单的使用并不感兴趣。

任何帮助都非常感激。

4 个答案:

答案 0 :(得分:3)

我建议不要手动操作,很难让它正确,为什么在有大量解决方案存在的情况下重新发明轮子? -
java的依赖注入规范是JSR-299,如果你不想使用Spring,你可以使用Weld库作为参考实现 您也可以考虑Guice框架,它是一个轻量级的DI框架。

答案 1 :(得分:2)

您不需要框架来使用DI。

你可以

  • 创建所有对象,例如新的
  • 通过构造函数传递所有必需的对象/参数。
  • 通过setter传递可选参数。
  • 传递只能通过setter构建的对象。

您也可以编写自己的IoC来执行此操作,但如果您想要简单,则使用Java编写它可能是最好的。

顺便说一句:如果你想要运行时加载,你可以在运行时编译和加载Java代码。

答案 2 :(得分:1)

我不会在这里重新发明轮子,可能你应该采用轻量级依赖注射容器。

这篇文章可能会帮助您做出选择: DI containers

希望这有帮助

答案 3 :(得分:0)

我自己写的。

虽然

有一些先决条件
  1. 格式化xml以减少解析器的负载。我已经定义了xml元素< bean id =“xyz”class =“类的包路径”>用于声明一个类,< parameter name =“xyz”value =“val”>或< parameter name =“xyz”ref =“beanid”>例如变量。参数可以指向另一个对象的值或引用
  2. 在解析器方面,所有bean都是使用反射创建的并发布到hashmap中,从那里可以通过引用或按值使用参数注入依赖项
  3. 非常简单。感谢所有评论