<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-reactor-spring-boot3-starter</artifactId>
</dependency>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-redis-jackson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
启动类增加注解
@EnableAspectJAutoProxy
package com.jianmu.config;
import cn.dev33.satoken.dao.SaSessionForJacksonCustomized;
import com.jianmu.constant.SysRedisConstant;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
@Aspect
@Component
@Slf4j
public class SaTokenDaoAspect {
@Pointcut("execution(* cn.dev33.satoken.dao.SaTokenDao.*(..))")
public void methodPointcut() {
}
@Around("methodPointcut()")
public Object beforeMethod(ProceedingJoinPoint joinPoint) throws Throwable {
log.info(joinPoint.getSignature().getName());
Object[] args = joinPoint.getArgs();
for (int i = 0, n = args.length; i < n; i++) {
if (args[i] instanceof String) {
String temp = args[i].toString();
if (temp.contains("token") && !temp.contains(SysRedisConstant.PROJECT)) {
args[i] = SysRedisConstant.PROJECT + temp;
}
}
if (args[i] instanceof SaSessionForJacksonCustomized) {
SaSessionForJacksonCustomized session = (SaSessionForJacksonCustomized) args[i];
if (!session.getId().contains(SysRedisConstant.PROJECT)) {
session.setId(SysRedisConstant.PROJECT + session.getId());
}
}
}
return joinPoint.proceed(args);
}
}