我是 IOC 新手,目前正在学习 Struts2 框架的源代码。通过学习,我对框架有了一些基本的了解,比如ActionInvocation
处理程序拦截器等。
但是当我试图找出神秘的(至少对我而言)依赖注入部分时,我完全迷失了。
包中指定的注入机制com.opensymphony.xwork2.inject
很难理解。究竟是如何ContainerImpl.inject(Object)
完成所有工作的?或者,为了理解 DI,我应该从哪里开始?
我是 IOC 新手,目前正在学习 Struts2 框架的源代码。通过学习,我对框架有了一些基本的了解,比如ActionInvocation
处理程序拦截器等。
但是当我试图找出神秘的(至少对我而言)依赖注入部分时,我完全迷失了。
包中指定的注入机制com.opensymphony.xwork2.inject
很难理解。究竟是如何ContainerImpl.inject(Object)
完成所有工作的?或者,为了理解 DI,我应该从哪里开始?
我个人觉得这个资源很有用。喜欢挖老、很老的用户指南可以下载Guice 1.0 User's Guide.pdf。正如戴夫提到的
S2 的 DI 使用了一个旧的(旧的!)黑客版本的 Guice。
因此,您可以将此页面用作使用 Struts2进行依赖注入的起点。
PS:
关于ContainerImpl.inject(Object)
将依赖项注入到现有对象的字段和方法中。
这并不神秘,因为 Guice 喜欢 Spring 自动装配 bean。像 Guice 这样的 Spring 可以使用注释来连接对象依赖项。