Пользовательская аннотация на поле модели для шифрования и дешифрования при сохранении в БД при весенней загрузке - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть приложение весенней загрузки, и я новичок с пользовательской аннотацией. Я хочу представить пользовательский симулятор аннотаций для couchbase java sdk's @EncryptedField. Если я применяю эту аннотацию к полю в классе модели, то это поле должно быть зашифровано при сохранении в db и расшифровано при повторном получении. Мне не ясно, какой подход выбрать? Должен ли я использовать Spring AOP для этого? Любые входы для реализации этого будут действительно полезны

1 Ответ

0 голосов
/ 29 апреля 2020

Это зависит от того, какую постоянную среду вы используете.

Для Mybatis вы можете добавить инсерцептор

вот так

<plugins>       
    <plugin interceptor="com.XXX.XXXX.service.encryptinfo.MyInterceptor" />
</plugins>

Тогда реализуй это

    @Intercepts({
    @Signature(type=Executor.class,method="update",args={MappedStatement.class,Object.class}),
    @Signature(type=Executor.class,method="query",args={MappedStatement.class,Object.class,RowBounds.class,ResultHandler.class})
})
public class MyInterceptor implements Interceptor{

    // your logic here
    // write something that use reflection capture your custom annotaion of the entity and field
}
...