我需要一个应用程序来监听mongodb中的更改,并向用户发送响应。通过外部post请求对数据库进行更改,然后我需要启动一个事件侦听器。
我搜索了好几天,我的想法是,这可以通过
AbstractMongoEventListener
班
我使用
spring.data.mongodb.host, spring.data.mongodb.port, spring.data.mongodb.database
.我可以从我的弹簧后端保存数据,并在端口8080上检索它们。
现在,我使用postman使用外部post请求在mongodb实例中存储数据。我需要从后端检测对数据库的这些更改。
从…起
this post
我有一些想法,但它并没有真正解释如何注册
AbstractMongoEventListener
是的
onAfterSave
方法
这是我的活动听众,
package com.example.demo;
import org.springframework.data.mongodb.core.mapping.event.AbstractMongoEventListener;
import org.springframework.data.mongodb.core.mapping.event.AfterSaveEvent;
public class HotelsRepositoryListener extends AbstractMongoEventListener<Object> {
@Override
public void onAfterSave(AfterSaveEvent<Object> event) {
super.onAfterSave(event);
System.out.println("Saved");
}
}
我想我必须实现一个配置类来注册这个监听器,但我不知道怎么做。这是我的
pom.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot with mongodb</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我知道我们可以用
Bean
和一些注释来记录这一点。但我不太清楚。有人能帮我解决这个问题吗?