项目背景:
1、综治项目有网格划分(最小行政区划下一级),根据不同登录用户只能查看当前行政区划及以下行政区划数据要求
2、针对特殊人群和出租屋,网格员要进行走访工作。
一、注解方式实现AOP
1、定义注解
@Target({
ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface QueryAspect {
String param() default "";
}
2、定义切面配置类
@Aspect //标记该类是切面类
@Component //加入spring容器
@AllArgsConstructor //这个注解是下面注入的都不用再写Autowrite
public class aspectMessage {
private final IUserClient userClient; //查询当前登录用户
@Before("@annotation(queryAspect)") //注解方式
public void beFore(JoinPoint joinPoint, QueryAspect queryAspect) {
Object entity = joinPoint.getArgs()[0]; //获取切面的第一个参数
Method setAreaId = null; //获取方法
Method getAreaId = null;//获取方法
try {
setAreaId = entity.getClass().getMethod("setAreaId", Long.class);//获取方法
getArea