@RestController
@RequestMapping("/users")
public class UserController {
private final UserService userService ;
// 通过CacheChannel操作j2cache缓存方法
private final CacheChannel cacheChannel;
public UserController(UserService userService, CacheChannel cacheChannel) {
this.userService = userService ;
this.cacheChannel = cacheChannel ;
}
@GetMapping("/save")
public User save() {
User user = new User() ;
int num = new Random().nextInt(80);
user.setAge(num) ;
user.setName("姓名 - " + num) ;
user.setSex(num >= 50 ? "男" : "女") ;
return this.userService.save(user) ;
}
@GetMapping("/{id}")
public Object get(@PathVariable("id") Long id) {
// 从指定的region,指定的key获取数据,如果一级,二级缓存中不存在,则通过第三个参数Function手动获取
// 如果缓存中不存在时,同时配置了允许缓存空对象,则会缓存一个空对象到缓存中
return this.cacheChannel.get("xj", id.toString(), key -> this.userService.get(id) , true) ;
}
@GetMapping("/delete/{id}")
public Object remove(@PathVariable("id") Long id) {
this.userService.remove(id) ;
return "success" ;
}
}