当我们需要@extension
在 java 中使用 hudson 时是什么情况?根据定义,它说,for a class/method so that hudson can locate implementation of ExtensionPoints automatically.
哈德逊的扩展点是什么?一个例子可以更好地描述理论。
我只看到 JAvaDoc 所说的:
将字段、方法或类标记为自动发现,以便 Hudson 可以自动定位ExtensionPoints的实现。
(相比之下,在早期的哈德逊,注册是手动的。)
在最简单的情况下,将它放在您的类中,Hudson 将创建它的一个实例并将其注册到适当的 ExtensionList。
如果您希望 Hudson 调用工厂方法而不是构造函数,请将此注释放在您的静态工厂方法上。Hudson 将调用它,如果该方法返回一个非空实例,它将被注册。方法的返回类型用于确定哪个
ExtensionList
将获取实例。最后,如果该字段包含对您要注册的实例的引用,则可以将此注释放在静态字段上。这是让您的实现自动注册到 Hudson 的默认方式,但 Hudson 还支持任意 DI 容器来托管您的实现。有关
ExtensionFinder
更多详细信息,请参阅。
您引用的示例 ( ) 是Hudsonhudson.plugins.clearcase.ItemListenerImpl
的一个特例。ItemListener