От https://wiki.eclipse.org/Eclipse4/RCP/Dependency_Injection#Considerations:
Be aware that injected values are dynamic: values that are changed in the context may be immediately propagated into injected fields/methods. Also, we have the "@Optional" annotation which allows values not currently in the context to be injected as "null" and re-injected later when the values are added to the context.
Интересно, как в Eclipse RCP реализовано динамическое внедрение, чтобы оно оставалось универсально поточно-ориентированным, и существует ли детерминированный процесс принятия решений с RCP для определения того, что не может быть введено через конструктор (в последнее поле).




Я ничего не видел о безопасности потоков, а код очень сложен, поэтому трудно сказать. При использовании отслеживаемой инъекции (много объектов
ContextInjectionListener) возникают довольно значительные накладные расходы на память, поэтому внедрение конструктора, вероятно, предпочтительнее для вещей, которые не меняются.