我们使用 Spring 来实现 REST 控制器,例如:
@Controller
@RequestMapping("/myservice")
public class MyController {
@RequestMapping(value = "foo", method = RequestMethod.GET)
public @ResponseBody string foo() {...}
}
我可以使用 spring RestTemplate 调用此服务,它工作正常,但我更愿意使用代理调用它,而不是使用字符串 url 进行无类型调用:
// client code:
MyController proxy = getProxy("baseUrl", MyController.class);
String results = proxy.foo();
因此,代理生成的输入是带有描述 REST 详细信息的注释的 java 接口。我阅读了这篇文章,看起来所有类型的远程调用都具有代理,而我需要的 REST 就是类似RestProxyFactoryBean
的,它将采用我的 REST java 接口并返回使用 RestTemplate 作为实现的类型安全代理。
我找到的最接近的解决方案是JBoss RESTEasy。
但它似乎使用了不同的注释集,所以我不确定它是否适用于我已经拥有的注释:@Controller
, @RequestMapping
. 是否有其他选择,或者 RESTEasy 是唯一的选择?请注意,我是春季新手,所以一些明显的春季事物对我来说很新。
谢谢你。
迪玛