我喜欢构建一个使用依赖注入的REST服务器。在我的情况下,要求将是
1)不应注入服务,而是注入服务的依赖性
2)服务应该通过ServiceLoad发现,而不是在web.xml中预先编写的
举个例子:
我有以下项目结构
以项目为基础
包含API,例如 TheServiceInterface 和 TheDaoInterface
项目服务的插件
插件 - 包含像
这样的服务实现Path("foo")
public class TheService implements TheServiceInterface {
private TheDaoInterface dao;
@Inject
public TheService(TheDaoInterface dao) {
this.dao = dao;
}
@POST
@Consumes(APPLICATION_JSON)
@Path("pr")
public void webmethod(String request) {
// do something with the request and dao
}
}
项目集成
将事物连在一起。这里的想法是通过 ServiceLoader 找到所有 TheServiceInterface 实现,并将dao实现注入其中。
我尝试了Jersey and Guice: a perfect combination for writing RESTful APIs,但是这使用了Jersey 1,看起来Jersey 2和Guice有一些问题,或者我发现的所有示例都只是在web.xml中注入或写入服务的地方
我的方法是否可行 - 如果是这样的话?可以使用哪些技术来实现它?
如果有框架帮助或其他jvm语言如groovy,请告诉我
由于