如何使用Jersey将依赖项注入资源?

Dun*_*hka 7 rest dependency-injection jax-rs jersey

我有以下代码:

@Path("stores")
class StoreResources {

  private ServerConfig config;

  @GET
  public String getAll() {
   //do some stuff with ServerConfig
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要ServerConfig从外部将对象注入此类并在getAll()方法内部使用它.

有哪些可能的方法来实现它?我应该使用像Guice或Spring这样的DI框架吗?

小智 5

这是一篇关于在Jersey下的Spring注入的好博客http://javaswamy.blogspot.com/2010/01/making-jersey-work-with-spring.html

结果是你使用注释来标记要注入的字段,这是一个示例资源

package com.km.services;  

import javax.ws.rs.GET;  
import javax.ws.rs.Path;  
import javax.ws.rs.Produces;  
import org.springframework.context.annotation.Scope;  
import org.springframework.stereotype.Component;  
import com.sun.jersey.spi.inject.Inject;  
import com.km.spring.SimpleBean;  

@Path("/hello")  
@Component  
@Scope("request")  
public class HelloResource {  

   @Inject private SimpleBean simpleBean;  

   @GET  
   @Produces("text/plain")  
   public String getMessage() {  
    return simpleBean.sayHello();  
   }  
} 
Run Code Online (Sandbox Code Playgroud)

出于我的目的,配置过于困难,所以我使用静态弹簧解析器工厂来解析bean.例如.

private SimpleBean simpleBean = SpringBeanFactory.getBean("mySimpleBean");
Run Code Online (Sandbox Code Playgroud)