resteasy-links的研究(一)
本文对resteasy-links这个模块继续进行深入的分析。
首先可以看看之前写过的文章:
首先补一下实现的类图,下面是核心的组成图:

从AddLinks看到它的processor是LinkDecorator:

于是看一下LinkDecorator的decorate()方法:

看到它调用的是RESTUtilsclass的addDiscovery()方法:

上面的方法当中,使用了processLinkResource()方法来把扫描到的resource classes都load进RESTServiceDiscovery。以下是processLinkResource()方法的逻辑:

注意到所有的信息都是从LinkResource扫描得来的。因此,resteasy-links的工作原理可以总结如下:
- 把需要生成atom links信息的方法标记上@AtomLink。
- 把需要扫描并处理类型class的方法标记上@LinkResource。
- 在resource class里面添加RESTServiceDiscovery实例进行信息注入。
上面的描述比较抽象,下一篇文章里给出一个实际的例子来进行说明。