当前位置: 首页 > 知识库问答 >
问题:

如何将动态Bean参数注入Jersey方法?

彭炳
2023-03-14

我有一个方法

@Path('/posts')
public class PostService{
    @GET
    public Response getAll(@QueryParam("page") int page,
        @QueryParam("pageSize") int pageSize,
        @BeanParam SearchParameters sp){

        sp.getTitle();
        sp.getDate();
        sp.getTag();
    }
}

我可能更容易获得查询参数的映射map

共有1个答案

荀裕
2023-03-14

@BeanParam允许将更多的可注入参数放到一个bean(POJO)中,这样您就不会在资源方法、资源方法构造函数中有那么多的可注入参数,也不会在资源类中有那么多的可注入字段。您可以将它们封装到注入@BeanParam的bean中。它处理@headerparam、@queryparam等参数。但是您也可以将ContainerRequestContext、UriInfo、SecurityContext或任何其他可注入对象注入bean。

但是,在您的情况下,您需要使用查询参数的映射,因为您需要所有参数,而不仅仅是以前已知的特定参数。为了获取它们,可以注入UriInfo并从中获取查询参数:

@GET
public Response get(@Context UriInfo uriInfo) {
    MultivaluedMap<String, String> queryParameters = uriInfo.getQueryParameters();
    String myParam = queryParameters.getFirst("myParam");    
    ...
}

或者可以使用@BeanParam并将@uriinfo注入bean。

 类似资料:
  • 问题内容: 我是Spring的新手。 这是bean注册的代码: 这是我的bean类: 这是我执行操作的主要方法: 现在,我想用参数调用此构造函数,并且这些参数是在我的主要方法中动态生成的。这就是我想动态传递- 而不是像文件中声明的那样静态传递的意思。 问题答案: 请看一下构造函数注入。 此外,请查看IntializingBean和BeanPostProcessor,以了解Springbean的其他

  • 经过一些实验,我已经能够使用和一些EL将我的GET参数注入到(因此是JSF)bean中。 现在,除了从,我无法将GET参数注入(即CDI-)bean。 因此,我一直在阅读有关JSF豆和CDI豆的优缺点。简而言之,我被两个问题困住了:第一。与 CDI bean 相比,使用 JSF bean 时会遇到任何缺点吗?2nd. 如果是这样,有没有一种干净的方法可以将我的 GET 参数注入到 CDI bean

  • 我正在开发一个遗留的JSF应用程序,我们正在慢慢地将其移植到Spring MVC。我们正在使用Spring Security来控制登录信息。在用户登录之后,JSF页面全局地实例化一个在任何地方都使用的会话作用域bean。我想更改应用程序,这样我们就可以先进入用Spring MVC开发的页面。 我尝试的一种方法是将bean转换为spring bean,并将其注入JSF,但不幸的是,这需要对bean进

  • 我正在使用 Spring 3.1.1,在我的业务逻辑中,我有一个循环,每次迭代都需要一个新的 Spring bean(原型范围)实例。 最好的方法是什么?我是否必须创建自己的 BeanFactory 类,我可以将其注入一次到我的类中,并且每次都调用它来生成 bean?在查看 Spring 3 文档时,它似乎暗示我应该改用 ApplicationContext。但是,使用ApplicationCon

  • 下面是如何配置应用程序的 问题是在应用程序启动期间,我得到以下错误 并且有很长的堆栈错误堆栈和描述 null 我刚试过用两个自定义方法param注入,那也不起作用

  • 问题内容: 我有灰熊提供的球衣。 我有一个实现类。但是,为所有传入请求创建一次此类。因此,这样做: 该为空。我可以将上下文注入到被调用的实际端点中,但这相当粗陋和丑陋,对我来说真的没有用;因为我希望记录各种请求。理想情况下,希望在请求的ResponseFilter端获取此对象。 必须有一种简单的方法来执行此操作。到目前为止,我所看到的所有问题/答案都不适用于Grizzly,也无法插入REST端点调