Я новичок в IOC и изучаю исходный код рамок Struts2. Благодаря обучению у меня есть некоторое базовое понимание структуры, например, как перехватчики обработчиков ActionInvocation
и т.д.
Но когда я пытался выяснить загадочную (по крайней мере, мне) часть Injection Dependency, я полностью потерялся.
com.opensymphony.xwork2.inject
механизм, указанный в пакете com.opensymphony.xwork2.inject
, трудно понять. Как именно ContainerImpl.inject(Object)
выполняет всю работу? Или, где я должен начать, чтобы понять DI?
Лично я нашел этот ресурс полезным. Для тех, кто любит копать старого, очень старого руководства пользователя можно скачать Guice 1.0 User Guide.pdf. Как сказал Дэйв
S2 использует старую (старую!) Взломанную версию Guice для своего DI.
Таким образом, вы можете использовать эту страницу в качестве отправной точки для инъекций зависимостей с помощью Struts2.
PS:
О ContainerImpl.inject(Object)
Вставляет зависимости в поля и методы существующего объекта.
Это не таинственно, потому что Guice, как Spring, автоустанавливает фасоль. Spring, как и Guice, может использовать аннотации для привязки объектов к объекту.