使用示例
@Secret
@PostMapping("upload")
public JSONObject upload(@RequestBody JSONObject params){
JSONObject upload = upload(params);
return upload;
}
POM文件
<!-- AOP切面依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
自定义注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Secret {
}
切面方法
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.nio.charset.StandardCharsets;
@Aspect
@Component
@Slf4j
public class SecretAOP {
@Value("${security.enable}")
private String securityEnable;
@Resource
private AppInfoDao appInfoDao;
@Pointcut("@annotation(com.face.annotation.Secret)")
public void pointcut(){}
@Around("pointcut()")
public JSONObject around(ProceedingJoinPoint point){
WrapperResponse result = new WrapperResponse();
Object[] args = point.getArgs();
Object proceed = point.proceed(args);
return proceed ;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44