class HeaderParameterResolver implements ParameterResolver<HeaderParam> {

    @Override
    public Object resolve(Parameter parameter, ApplicationContext context) throws Exception {
        String param = this.headerParam.value();
        TypeProducer typeProducer = typeProducerFactory.createTypeProducer(parameter.getParameterClass(), parameter.getGenericType());
        return typeProducer.createValue(param, context.getHttpHeaders().getRequestHeaders(), parameter.getDefaultValue());
    }

      HeaderParameterResolver(HeaderParam headerParam, TypeProducerFactory typeProducerFactory);

}