使用Restful和CDI一起工作的最佳方法是什么?

时间:2015-07-07 21:10:01

标签: java web-services rest java-ee cdi

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

有人知道如何在没有EJB的情况下一起工作吗?。

1 个答案:

答案 0 :(得分:1)

谈到Restful,我认为你的意思是Jax-RS。请使用以下代码:

<强> UserResource.java

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

@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) {
        // ...
    }
}

并在META-INF(jar)或WEB-INF(war)目录中设置beans.xml以激活CDI(使用JEE7时不需要JEE6,beans.xml您的类使用bean defining annotations)进行注释。