@RequestMapping("/addUser") public ReturnCodeUtil addUser(@RequestBody User user) { ReturnCodeUtil returnCodeUtil = new ReturnCodeUtil(); if(null == user.getUserFlag()){ returnCodeUtil.setResult(false); return returnCodeUtil; } int res = this.userService.addUser(user); if (res>0) { returnCodeUtil.setResult(true); } else { returnCodeUtil.setResult(false); } return returnCodeUtil; }优化这段代码
时间: 2024-03-11 19:49:56 浏览: 59
Spring 注解 开发模式 @Controller @RequestMapping @
5星 · 资源好评率100%
这段代码可以进行以下优化:
1. 对于参数校验,可以使用JSR-303注解进行校验,避免手动判断是否为空。
2. 对于返回结果,可以使用统一的返回格式,如ResultVO,避免使用ReturnCodeUtil。
3. 可以使用try-with-resource来关闭资源,如InputStreamReader和BufferedReader。
4. 可以使用Lambda表达式简化代码。
5. 对于userService.addUser方法的返回值,可以使用枚举类型进行封装,避免使用int类型。
重构后的代码如下所示:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/add")
public ResultVO addUser(@Validated @RequestBody User user) {
userService.addUser(user);
return ResultVO.success();
}
}
```
```java
public class ResultVO<T> {
private boolean success;
private T data;
private String message;
public static <T> ResultVO<T> success() {
return new ResultVO<>(true);
}
public static <T> ResultVO<T> success(T data) {
return new ResultVO<>(true, data);
}
public static <T> ResultVO<T> fail(String message) {
return new ResultVO<>(false, null, message);
}
private ResultVO(boolean success) {
this(success, null);
}
private ResultVO(boolean success, T data) {
this(success, data, null);
}
private ResultVO(boolean success, T data, String message) {
this.success = success;
this.data = data;
this.message = message;
}
// getter and setter
}
```
```java
@Service
public class UserService {
public void addUser(User user) {
// do something
}
}
```
通过上述优化,代码更加简洁易读,而且减少了重复代码的出现,提高了代码的可维护性和可扩展性。
阅读全文