3

技术栈:Java 1.6、JAXB、Spring 3、JAX-RS (RESTEasy)

我已经编写了一个 Web 服务 (REST),现在我想使用模式来验证请求。我有一个工作代码,如此处所示用于验证。

我的代码如下所示:

public abstract class AbstractValidatingReader<T> implements MessageBodyReader<T> {

    @Context
    protected Providers providers;

    private Schema schema;

    public AbstractValidatingReader() {
       ....
    }

    @SuppressWarnings("unchecked")
    @Override
    public boolean isReadable(Class<?> arg0, Type arg1, Annotation[] arg2, MediaType arg3) {
        ....
        return arg0 == readableClass;
    }

    @SuppressWarnings("unchecked")
    @Override
    public T readFrom(Class<T> arg0, Type arg1, Annotation[] arg2, MediaType arg3, MultivaluedMap<String, String> arg4,
            .....
        return type;
    }

    protected abstract T validate(T arg0) throws WebApplicationException;
}

和,

@Component
@Provider
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.APPLICATION_XAMF })
public class ValidatingReaderImpl extends AbstractValidatingReader<Person> {

    @Override
    protected Person validate(Person arg0) throws WebApplicationException {

        return arg0;
    }

}

这适用于Person类,并且请求正在得到验证。但是,我还有很多其他要求,例如联系人、链接、就业等。

我是否必须为每种请求类型扩展 AbstractValidatingReader 类?

我正在针对相同的架构进行验证,因此看起来有很多代码\类来执行此操作。

谢谢,阿迪

4

0 回答 0