需求:对象状态管理。可修改、可获得,基于redis数据储存。
实现思路
接收前端路径参数,存储到redis中。
@PutMapping("/{status}") //接收前端路径参数
获取redis中存储的数据后返回前端
核心代码实现
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
@RestController("adminShopController") //初始bean并指定bean名称,类名相同时候防止冲突使用。
@RequestMapping("/admin/shop")
@Api(tags = "店铺相关接口")
@Slf4j
public class ShopController {
//定义常量属性更加规范
public static final String KEY = "SHOP_STATUS";
@Autowired
private RedisTemplate redisTemplate;
/**
* 设置店铺的营业状态
* @param status
* @return
*/
@PutMapping("/{status}") //接收前端路径参数
@ApiOperation("设置店铺的营业状态")
public Result setStatus(@PathVariable Integer status){
log.info("设置店铺的营业状态为:{}",status == 1 ? "营业中" : "打烊中");
//将数据存在redis中
redisTemplate.opsForValue().set(KEY,status);
return Result.success();//添加不需要封装返回值
}
/**
* 获取店铺的营业状态
* @return
*/
@GetMapping("/status")
@ApiOperation("获取店铺的营业状态")
public Result<Integer> getStatus(){
Integer status = (Integer) redisTemplate.opsForValue().get(KEY);
log.info("获取到店铺的营业状态为:{}",status == 1 ? "营业中" : "打烊中");
return Result.success(status);//得到、调回需要封装返回值
}
}
你要启动redis才能成功运行..........
辅助代码
后端统一返回结果封装类
import lombok.Data;
?
import java.io.Serializable;
?
/**
* 后端统一返回结果
* @param <T>
*/
@Data
public class Result<T> implements Serializable {
?
? ?private Integer code; //编码:1成功,0和其它数字为失败
? ?private String msg; //错误信息
? ?private T data; //数据
?
? ?public static <T> Result<T> success() {
? ? ? ?Result<T> result = new Result<T>();
? ? ? ?result.code = 1;
? ? ? ?return result;
? }
?
? ?public static <T> Result<T> success(T object) {
? ? ? ?Result<T> result = new Result<T>();
? ? ? ?result.data = object;
? ? ? ?result.code = 1;
? ? ? ?return result;
? }
?
? ?public static <T> Result<T> error(String msg) {
? ? ? ?Result result = new Result();
? ? ? ?result.msg = msg;
? ? ? ?result.code = 0;
? ? ? ?return result;
? }
?
}
有帮助请点关注,持续更新ing 。哈哈哈哈哈..........