1 实现ExpiringSession接口
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.session.ExpiringSession;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
public final class DiySession implements ExpiringSession, Serializable {
private final Logger logger = LoggerFactory.getLogger(DiySession.class);
private String id;
private long creationTime;
private Map<String, Object> attributes;
private long lastAccessedTime;
private int maxInactiveInterval;
public DiySession() {
this("DIY-" + System.currentTimeMillis() + "-"
+ UUID.randomUUID().toString().substring(0, 8));
}
public DiySession(String id) {
this.id = id;
this.attributes = new HashMap<>();
this.creationTime = System.currentTimeMillis();
this.lastAccessedTime = this.creationTime;
this.maxInactiveInterval = 1800;
}
public DiySession(ExpiringSession session) {
if (session == null) {
throw new IllegalArgumentException("session cannot be null");
}
this.id = session.getId();
this.attributes = new HashMap<>();
session.getAttributeNames().forEach(k -> {
this