Перехватчик для MongoDB в Java
Я новичок в Spring и MongoDB. Я пытаюсь проверить операции CRUD на MongoDB. Я нашел много плагинов, которые проверяют изменения на уровне MongoDB, но я ищу что-то вроде перехватчика или ловушки (например, EmptyInterceptor для hibernate), который работает на уровне Java.
Я использую GMongo на Java для работы на MongoDB. Что может помочь мне в этом?
2 ответа
Spring-Data-Mongodb обеспечивает AbstractMongoEventListener
именно для этих целей.
Прочитайте полные события жизненного цикла здесь.
Все, что вам нужно сделать, это написать класс (убедитесь, что Spring сканирует его, используя @Configuration
или компоненты могут), который расширяет AbstractMongoEventListener
и реализовать различные абстрактные методы, предоставляемые AbstractMongoEventListener, и написать свою логику аудита внутри этих методов.
Взгляни на LoggingEventListener
в org.springframework.data.mongodb.core.mapping.event в банке spring-data-mongodb.
Я думаю, что вы можете попробовать CommandListener. Вам просто нужно создать новый объект, который реализует интерфейс и добавить его в MongoClientOptions, а затем использовать MongoClientOptions для создания MongoClient. как это:
MongoCommandListener listener = new MongoCommandListener();
MongoClientOptions options =
MongoClientOptions.builder().addCommandListener(listener).build();
return new MongoClient(new ServerAddress(host,port), options);