在resteasy提供程序中自动装配spring托管bean

时间:2017-01-16 09:08:10

标签: spring web-services resteasy jboss6.x

我正在开发一个webservice,我需要验证请求中针对数据库发送的特定httpheader。

我想使用RestEasy提供程序执行相同操作,因为需要将相同的功能应用于所有服务。

@Provider
@ServerInterceptor
public class TestValidationInterceptor implements PreProcessInterceptor      {

@Autowired
DetailsDelegate detailsDelegate;

@Override
public ServerResponse preProcess(HttpRequest request, ResourceMethod method) throws Failure, WebApplicationException {
    //code to get data using detailsDelegate.
    return null;
    }
}
    public interface DetailsDelegate {

String BEAN_ID = "DetailsDelegate";

/**
 * @param appName
 * @return
 * @throws BaseException
 */
ServiceInfo getServiceDetails(String appName) throws BaseException;
 }
@Service("detailsDelegate")
public class DetailsDelegateImpl implements DetailsDelegate {


@Override
public ServiceInfo getServiceDetails(String appName) throws BaseException {
    return null;
   }
}

detailsDelegate实例未获得自动装配且为null。

有人可以解释我为什么要面对这个问题。

1 个答案:

答案 0 :(得分:1)

最好让spring选择它的bean名称来改变

@Service("detailsDelegate")

@Service

自动装配界面:

@Auowired
DetailsDelegate 

最后确保在您的配置中扫描定义了DetailsDelegate的包:

@ComponentScan("com.mypackage")

有关示例,请参阅http://docs.spring.io/spring-javaconfig/docs/1.0.0.M4/reference/html/ch06s02.html