ccppgo
V2EX  ›  Java

Java 新手求助, Spring 是如何将 GET 请求的参数注入进类方法参数的对象属性里的

  •  
  •   ccppgo · Jul 9, 2021 · 2596 views
    This topic created in 1766 days ago, the information mentioned may be changed or developed.

    各位大神请看图

    图 1 图 2 图 3

    这是我写的一个分页查询接口, 在 Controller 层我使用 Page 类和 Channel 实体接收了 3 个参数, 我想新写一个类包装 Page 类和使用泛型接收表实体类, 然后再写一些通用的属性例如:

    public class ParamRequest<T> {
    
        private Page<T> page;
    
        private T entity;
    
        // 一些通用的参数
        private int orderBy;
        private int a;
        private int b;
    
    }
    
    

    最后在图一,图二的方法里形参是(ParamRequest<Channel> request) 图二中间就是 wrapper.setEntity(request.getEntity)

    请各位大佬给我指点一些方案我去学习一下

    3 replies    2021-07-09 19:00:40 +08:00
    ccppgo
        1
    ccppgo  
    OP
       Jul 9, 2021
    这样做的一个需求就是可以想使用 Vo 代替实体, 当连表查询的时候更方便一点
    MoHen9
        2
    MoHen9  
       Jul 9, 2021   ❤️ 1
    可以用 HandlerMethodArgumentResolver 实现自定义的请求接口解析,(附:取到请求参数后可以用 JSON 库转换)
    sheepzh
        3
    sheepzh  
       Jul 9, 2021   ❤️ 1
    Spring MVC 提供了类似 hooker 接口,一般会在里面将请求的固定参数(租户 ID,用户 ID,权限 ID )放进自定义的请求线程上下文 (用 ThreadLocal 保存),然后 repository 层套个 AOP 就可以做数据隔离了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   952 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 22:40 · PVG 06:40 · LAX 15:40 · JFK 18:40
    ♥ Do have faith in what you're doing.