如何将一个spring bean注入Jersey InjectableProvider

时间:2011-08-29 03:52:08

标签: spring inversion-of-control jersey provider

我刚刚为Jersey创建了一个InjectableProvider的实现,但我发现要完成我需要Spring工厂bean支持的注入。我正在寻找一种方法将该工厂作为字段注入提供程序类。我已经尝试使用@Component注释,但是因为IllegalState异常(没有为范围“请求”注册的范围)而失败了)

处理这个问题的正确方法是什么?或者有没有办法从Jerseys HTTPcontext重新获得应用程序上下文?

1 个答案:

答案 0 :(得分:0)

这是迟到的,但我讨厌看到无法回答的问题。

通常,在您的工厂bean上,您应该:

@Component
public class FactoryBean(){}

在您的提供商中,您应该使用

public class Provider extends InjectableProvider<Context>{
      @InjectParam
      private FactoryBean factoryBean;
}

首先想到的是,你会认为你应该使用@Autowired,因为它是Spring的“组件” - 但是因为我们在Jersey实例化的bean中连接它,所以应该使用Jersey的@InjectParam。