1

当我们需要@extension在 java 中使用 hudson 时是什么情况?根据定义,它说,for a class/method so that hudson can locate implementation of ExtensionPoints automatically.

哈德逊的扩展点是什么?一个例子可以更好地描述理论。

4

1 回答 1

1

我只看到 JAvaDoc 所说的:

将字段、方法或类标记为自动发现,以便 Hudson 可以自动定位ExtensionPoints的实现。

(相比之下,在早期的哈德逊,注册是手动的。)

在最简单的情况下,将它放在您的类中,Hudson 将创建它的一个实例并将其注册到适当的 ExtensionList。

如果您希望 Hudson 调用工厂方法而不是构造函数,请将此注释放在您的静态工厂方法上。Hudson 将调用它,如果该方法返回一个非空实例,它将被注册。方法的返回类型用于确定哪个ExtensionList将获取实例。最后,如果该字段包含对您要注册的实例的引用,则可以将此注释放在静态字段上。

这是让您的实现自动注册到 Hudson 的默认方式,但 Hudson 还支持任意 DI 容器来托管您的实现。有关ExtensionFinder更多详细信息,请参阅。


您引用的示例 ( ) 是Hudsonhudson.plugins.clearcase.ItemListenerImpl的一个特例。ItemListener

于 2013-09-04T14:01:22.857 回答