首先需要定义三个注解,分别是用在新增或更新方法上的加密注解、get方法上的解密注解和字段上的注解。在需要进行加密或解密的add或get方法上添加注解,AOP会对方法内的实体对象的字段进行扫描,看哪些字段需要进行加密或解密;其次我需要用策略模式实现对不同类型的字段进行不同方式的加解密,所以需要定义一个接口及若干实现类,这里为了演示方便只写一个String类型的实现类;最后就是要实现具体的加解密操作。
定义注解
该注解用在新增或更新方法上,AOP扫描到之后会对添加该注解的方法内的数据进行加密操作
package com.demo.aop.test;
import java.lang.annotation.*;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface EncryptMethod {
}
该注解用在get类方法上,AOP扫描到之后会对添加该注解的方法返回的数据进行解密操作
package com.demo.aop.test;
import java.lang.annotation.*;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)