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的启动过程