基于Spring AOP AutoProxy机制定制,可以轻松快速实现对接口或者类的复杂代理业务
1. 实现接口走Spring代理,类走CGLIB代理 2. 实现同一进程中,可以接口代理和类代理同存 3. 实现对类或者接口名上注解Annotation,方法上注解Annotation的快速扫描,并开放处理接口供业务端实现 4. 实现“只扫描不代理”,“既扫描又代理”;代理支持“只代理类或者接口名上注解”、“只代理方法上的注解”、“全部代理”三种模式;扫描支持“只扫描类或者接口名上注解”、“只扫描方法上的注解”、“全部扫描”三种模式 5. 实现“代理和扫描多个注解“ 6. 实现“支持多个切面实现类Interceptor做调用拦截” 7. 实现“自身调用自身的注解方法,达到切面效果”,提供自动装配和AopContext.currentProxy()两种方式 8. 实现“只扫描指定目录”和“扫描全局目录”两种方式
Matrix框架一般可以应用到如下场景中:
1. 对于有复杂AOP使用场景的,用Matrix可以简化你的切面开发。例如: 1.1 根据不同的业务逻辑,指定所有的注解由同一个或者多个拦截类来拦截;也可以指定不同的注解由不同的切面拦截类来拦截;更可以指定不同的接口和实现类,由不同的拦截类来拦截 1.2 如果注解很多,可以指定,你只关心哪些类注解,哪些方法注解,不管这些注解是你自定义的,还是系统定义的 2. 注解加在接口上,还是实现类上,或者没有接口的类,可以随意换 3. 扫描到一个注解后,你可以做一些处理,例如你可以把注解对应的数据存入数据库 4. 强大的注解扫描和拦截功能,在不侵入业务代码的前提下(只是需要在业务端加入一个注解而已),你可以实现业务应用,例如API监控统计、API健康检查等