resteasy-link的工作机制

resteasy-links的工作原理可以总结如下:

涉及到的classes:

入口标记类是AddLinks

然后LinkDecorator的主要作用是把registry传入RESTUtils

此时进到RESTUtilsaddDiscovery(...)方法里面看看:

可以看到主要是把resources里的信息注册进RESTServiceDiscovery。接下来看processLinkResources(...)

这里面会找到LinkResourceLinkResources标记的resource methods,然后通过processLinkResource(...)进行处理:

上面的方法里面,调用了addInstanceServiceaddService

可以看到是这两个方法处理resource methods中的各种信息,然后给放进RESTServiceDiscovery里面。最后是调用RESTServiceDiscoveryaddLink(...)方法并保存:

这样,一个完整的RESTServiceDiscovery的instance就被制作好了,然后注入到使用它的classes里面去。

因此可以看到,AddLinks是自动生成并注入RESTServiceDiscovery用的,从文档也可以看出来: