REST 请求主体的嵌套静态 类 是否类似于非静态 类?

Are nested static classes similar to non-static classes for REST request-body?

我正在使用 Spring Boot 来设计 REST API。我想知道在请求正文中使用嵌套 classes 会有什么不同?

REST 端点:

@PostMapping("/create")
public void (@RequestBody RequestData.UserDetails details) {}

我的请求数据class:

public class RequestData {
  public static final class UserDetails {
     private String name;
  }
}

所以我的问题是以下哪个 class 定义是安全的?

  1. 为 UserDetails 创建一个单独的 class 以获取请求的数据
  2. 如上所述创建嵌套 class

嵌套 classes 在多个并发请求期间或以其他方式影响吗?

Do nested classes affect during multiple concurrent requests or in some other way?

不,请求正文将映射到 RequestData.UserDetails 的实例,如果它是单独的 class,则直接映射到 UserDetails。如果您不将此实例作为 class 属性存储在您的控制器、服务等中,则不会出现并发请求问题,因为对您的控制器的每个请求都会有其自己的此类 class 实例多线程不是问题,因为你不存储状态。

这意味着嵌套 class 或单独的 class 与您是否拥有线程安全控制器、服务等无关。重要的是不要在它们上面存储状态。

在这种情况下,嵌套 class 或单独的 class 更像是品味和组织问题。