resteasy-links的研究(一)
本文对resteasy-links
这个模块继续进行深入的分析。
首先可以看看之前写过的文章:
首先补一下实现的类图,下面是核心的组成图:
从AddLinks
看到它的processor是LinkDecorator
:
于是看一下LinkDecorator
的decorate()
方法:
看到它调用的是RESTUtils
class的addDiscovery()
方法:
上面的方法当中,使用了processLinkResource()
方法来把扫描到的resource classes都load进RESTServiceDiscovery
。以下是processLinkResource()
方法的逻辑:
注意到所有的信息都是从LinkResource
扫描得来的。因此,resteasy-links
的工作原理可以总结如下:
- 把需要生成atom links信息的方法标记上
@AtomLink
。 - 把需要扫描并处理类型class的方法标记上
@LinkResource
。 - 在resource class里面添加
RESTServiceDiscovery
实例进行信息注入。
上面的描述比较抽象,下一篇文章里给出一个实际的例子来进行说明。