Jersey资源构造函数变量注入

时间:2011-07-20 14:49:19

标签: dependency-injection constructor jersey jax-rs

我有一个Resource类,几乎所有方法都接受一个Foo类型的变量作为参数。在每个请求开始时,我需要处理这个对象。有没有办法可以将所有这些都移动到资源的构造函数中:

public class Resource{

   public Resource(Foo foo){
         // common lines of code
   }

   @POST
   public methodOne(Foo foo){

   }

}

我得到依赖错误如果我试试这个。

由于

2 个答案:

答案 0 :(得分:1)

您可以使用依赖注入来注入Foo。 JEE6对JSR330有DI支持。

答案 1 :(得分:1)

您可以将公共代码移动到单独的方法,然后从每个请求方法中调用该方法:

...
private Foo processFoo(Foo foo)
{
    Foo newFoo;
    // common processing here
    return newFoo;
}

@POST
public methodOne(Foo foo){
    Foo processedFoo = processFoo(foo);
    ...
}
...