我想将非spring bean类对象用作球衣Web服务类方法的参数。但是它在构建时会给出缺少的依赖项错误。
我的代码是:
@Component @Path("/abcd") public class ActorServiceEndpoint { @POST @Path("/test/{nonspringBean}") @Produces(MediaType.APPLICATION_XML) public void addActor(@PathParam("nonspringBean") MyNonSpringBeanClass nonspringBean){ } }
关键是路径参数以字符串形式出现。根据规范,如果我们希望将自定义类型作为注入@PathParam,则自定义类应具有以下三项之一:
@PathParam
valueOf(String param)
fromString(String param)
ParamConverter
如果您不拥有该类(它是无法更改的第三方类),那么您唯一的选择是使用该ParamConverter/ParamConverterProvider对。
ParamConverter/ParamConverterProvider
在这两种情况下,您都需要通过在构造函数或上述方法之一中解析String来相应地构造实例。完成此操作后,可以将自定义类型设置为带有注释的方法参数。
这同样适用于其他参数,可以如属实@FormParam,@HeaderParam,@QueryParam,等。
@FormParam
@HeaderParam
@QueryParam