我想知道在SpringBoot的RestController
中是否有一种优化方法来获取必要的实体。
对于此示例,我使用的是SpringData JPA存储库和Jackson。
假设我有这个实体User。
public class User() {
UUID id;
String name;
String surname;
}
我还有一个UserRepository
,它从JpaRepository
开始扩展,一个UserService
和一个UserResolver
看起来像这样:
@RequiredArgsConstructor
public class UserResolver extends GenericResolver<User> {
@NonNull
UserRepository repo;
@Override
JpaRepository<User, UUID> getRepository() {
return repo;
}
}
因此,我想从当前的实现中转移出来:
@RestController
@RequestMapping("/api")
class MyController {
@Autowired UserService userService;
@GetMapping("/user/{id}")
public User getUserById(@PathParam String id) {
User myUser = userService.load(id);
...
// Do Whatever with the user
return myUser;
}
}
对于这样的方法:
@GetMapping("/user/{id}")
public User getUserById(@PathParam User myUser) {
...
// Do Whatever with the user
return myUser;
}
我知道这是一个虚拟案例,但是在某些情况下,这将节省时间,并且可以更直接地从其ID中加载所有依赖项。