SpringMVC 静态内部类作为参数接收问题

使用SpringMVC 接收部分对象的参数集合。

@RestController
@RequestMapping("/test")
public class TestController {

    @Data
    static class A{
        private String name;
        private Integer age;
        private String nName;
    }

    /**
     * 保存
     * @param a 参数集合
     * @return str
     */
    @PostMapping("/save")
    public String save(@ModelAttribute TestController.A a){
    // 1. 保存
    
        return "成功";
    }

}

save方法使用 TestController.A 静态的内部类作为多个参数的接收实体。
由于SpringMVC 无法初始化内部类,修改成静态内部类即可

  • 这样做的有两个好处:

    1. 方便参数的拓展
    2. 方便使用JSR303校验参数

但我并不清楚这样做是否有安全问题?或有哪些问题?

阅读 5.4k
1 个回答

静态内部类跟单独的public类没什么区别,只是写在一个类的内部。你看class文件静态内部类被编译成一个单独的class文件。担心哪些安全问题呢?应该没有安全问题。

话说回来,既然跟public类一样,我还是推荐写一个public类。除非这个类就是public类的一部分。比如有一个Bank类,Account类可以写为静态内部类,因为Account一定属于Bank。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题