我试图使用CDI和Restful一起构建一个项目(从CDI bean发布Restful服务),但是我找不到解决方法。

有人知道没有EJB如何可以一起工作吗?

最佳答案

谈到Restful,我想您的意思是Jax-RS。采取以下代码:

UserResource.java

此类实现RESTful API,该API访问用例GetUser并返回其结果。

@Path("users")
@ApplicationScoped
public class UserResource {

    @Inject
    private GetUser getUser;

    @GET
    public Response getUser(@QueryParam("userId") String userId) {
        return UserRepresentationMapper.toRepresentation(getUser.getUser(userId);
    }
}


GetUser.java

GetUser用例使用一些依赖项(这里是UserService)来获取其数据并对其进行处理。

@ApplicationScoped
public class GetUser {

    @Inject
    private UserService userService;

    public ApplicationUser getUser(String userId) {
        // ...
    }
}


并且在beans.xml(jar)或META-INF(war)目录中有一个WEB-INF来激活CDI(JEE6,使用JEE7时不需要beans.xml,并且所有类都用bean defining annotations注释)。

关于java - 结合使用Restful和CDI的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31279315/

10-10 11:57