Jenkins 开发中的依赖注入

Boo*_*oon 5 java dependency-injection jenkins

我正在开发一个(现有的)Jenkins 插件,并且想使用依赖注入。不幸的是,Jenkins 开发的 DI 记录很少。据我所知,Jenkins 使用 Google 的 Guice 框架进行 DI。有这个 Wiki 页面,但我对此有点困惑:在我检查过的现有 Jenkins 插件中,我没有看到对 Guice 的此类调用,但我确实看到了注释的大量用途@Inject。此外,令我困扰的是,我需要在每个Guice.createInjector(new MyModule()).injectMembers(this);需要依赖注入的类中调用,看起来我在乱扔代码。

如何在 Jenkins 中进行依赖注入?例如,我有一个简单的接口“MyInterface”和一个实现类MyInterfaceImpl。在第三节课中,我有以下内容:

class MyClass {
    private MyInterface obj;

    @Inject
    public MyClass(MyInterface obj) {
        this.obj = obj;
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

Jenkins 中是否有一种机制可以自动构造此类对象,或者我是否必须添加 Guice 注入器代码?

mpk*_*nje 0

信息不完整的 wiki 是由Dan Alvizux作为 SO 问题的一部分编写的。它并没有反映 Jenkins 实际如何进行 DI。

为 DI 注册类的正确方法似乎是像平常一样对其进行注释@Extension和使用。@InjectJavaDoc 中讨论了一些其他选项。