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