在 Java Controller 中,同一个 Service 方法可能需要处理来自不同请求的差异化参数。为了避免冗余的请求体代码,可以使用 Java 中的 BeanUtils.copyProperties 方法将请求参数转换为 Service 方法中的对象。

具体步骤如下:

  1. 在 Service 方法的对象中定义与请求参数相同的属性。

  2. 在 Controller 中针对不同的请求参数,创建对应的请求对象,再调用 BeanUtils.copyProperties 方法将请求对象的属性值复制到 Service 方法的对象中。

  3. 将 Service 方法中的对象作为参数调用对应的 Service 方法。

示例代码如下:

// service方法的对象
public class User {
    private String name;
    private int age;
    // getter和setter方法
}

// controller中的请求对象1
public class AddUserRequest {
    private String name;
    private int age;
    // getter和setter方法
}

// controller中的请求对象2
public class UpdateUserRequest {
    private String name;
    // getter和setter方法
}

// controller中的方法1
@RequestMapping("/add")
public void addUser(AddUserRequest request) {
    // 将请求参数转换为service方法中的对象
    User user = new User();
    BeanUtils.copyProperties(request, user);
    // 调用service方法
    userService.addUser(user);
}

// controller中的方法2
@RequestMapping("/update")
public void updateUser(UpdateUserRequest request) {
    // 将请求参数转换为service方法中的对象
    User user = new User();
    user.setName(request.getName());
    // 调用service方法
    userService.updateUser(user);
}

通过这种方法,可以有效地将不同请求参数映射到 Service 方法中的对象,提高代码的可读性和可维护性。

Java Controller 中高效处理不同请求参数:使用 BeanUtils.copyProperties 映射 Service 方法对象

原文地址: https://www.cveoy.top/t/topic/mUOw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录