resteasy-link的工作机制
resteasy-links的工作原理可以总结如下:
@AddLinks用来往返回数据里面注入RESTServiceDiscovery的instances。@LinkResources是用来标记需要进RESTServiceDiscovery的method的数据类型。
涉及到的classes:

入口标记类是AddLinks:

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

此时进到RESTUtils的addDiscovery(...)方法里面看看:

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

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

上面的方法里面,调用了addInstanceService跟addService:


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

这样,一个完整的RESTServiceDiscovery的instance就被制作好了,然后注入到使用它的classes里面去。
因此可以看到,AddLinks是自动生成并注入RESTServiceDiscovery用的,从文档也可以看出来:

- 上一篇 resteasy-links中的AddLinks功能实现
- 下一篇 JVM的启动过程