/** * 自定义注解 * @LMJ * DATE:2023/11/17 */ @Target({ElementType.METHOD}) //在方法上运行 @Retention(RetentionPolicy.RUNTIME) public @interface LmjApiFilter{ String[] whiteIpList(); } @interface:是指声明一个注解,方法名对应参数名,返回值类型对应参数类型。 @Target: 是指自定义注解的使用位置 @Retention:是指于自定义注解的生命周期 RetentionPolicy:的取值包含以下三种: SOURCE:源码级别保留,编译后即丢弃。 CLASS:编译级别保留,编译后的class文件中存在,在jvm运行时丢弃,这是默认值。 RUNTIME:运行级别保留,编译后的class文件中存在,在jvm运行时保留,可以被反射调用。 我们需要使用到AOP,所以选择最后一个! import com.sz.annotate.LmjApiFilter; import org.json.JSONObject; import...