参考@Repository 会自动加入PersistenceExceptionTranslationAdvisor
实现mapper接口方法拦截
1.自定义注解
@Target(
AnnotationTarget.VALUE_PARAMETER,
AnnotationTarget.FIELD,
AnnotationTarget.FUNCTION
)
@Retention(AnnotationRetention.RUNTIME)
@Documented
@Inherited
annotation class ORMEncrypt {
}
2.使用注解标记mapper接口中的方法
@Mapper
@Repository
interface GameServerMapper {
@ORMEncrypt
fun getIp(@Param("status") @ORMEncrypt status: String,@Param("ip") ip : String): String
}
3.定义自己的方法拦截处理器
class ORMInterceptor :MethodInterceptor {
override fun invoke(methodInvocation: MethodInvocation): Any {
return methodInvocation.proceed()
}
}
4.定义自己的advisor关联拦截器和切入点
class ORMEncryptAdvisor(
private val ormInterceptor: ORMInterceptor,
private val pointcut:AnnotationMatchingPointcut
) : AbstractPointcu