From 3cd38284297e80419cc6c93491a2a98f7f3e02bc Mon Sep 17 00:00:00 2001 From: SVAdithya Date: Wed, 31 Jul 2024 22:48:39 +0530 Subject: [PATCH 1/3] using record instead of class using records instead of class, so we can avoid constructors, getter, setter, toString and hashMap --- .../repository/dto/SuccessMessage.java | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/kafka/learn/kafkastudy/repository/dto/SuccessMessage.java b/src/main/java/com/kafka/learn/kafkastudy/repository/dto/SuccessMessage.java index b0c8f72..7fe7460 100644 --- a/src/main/java/com/kafka/learn/kafkastudy/repository/dto/SuccessMessage.java +++ b/src/main/java/com/kafka/learn/kafkastudy/repository/dto/SuccessMessage.java @@ -1,20 +1,14 @@ package com.kafka.learn.kafkastudy.repository.dto; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.Setter; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "successMessage") -@Getter -@Setter -@AllArgsConstructor -public class SuccessMessage { - @Id - private String id; - private String headers; - private String body; - private Long offset; - private String time; +public record SuccessMessage( + @Id String id, + String headers, + String body, + Long offset, + String time +) { } From c84e7c60b202cf92eb1cbbe1c00745600adaadc9 Mon Sep 17 00:00:00 2001 From: SVAdithya Date: Wed, 31 Jul 2024 22:57:34 +0530 Subject: [PATCH 2/3] MongoDB interceptor for create flow --- .../interceptor/MongoLogInterceptor.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/com/kafka/learn/kafkastudy/interceptor/MongoLogInterceptor.java diff --git a/src/main/java/com/kafka/learn/kafkastudy/interceptor/MongoLogInterceptor.java b/src/main/java/com/kafka/learn/kafkastudy/interceptor/MongoLogInterceptor.java new file mode 100644 index 0000000..1190ffb --- /dev/null +++ b/src/main/java/com/kafka/learn/kafkastudy/interceptor/MongoLogInterceptor.java @@ -0,0 +1,19 @@ +package com.kafka.learn.kafkastudy.interceptor; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.mongodb.core.mapping.event.AbstractMongoEventListener; +import org.springframework.data.mongodb.core.mapping.event.MongoMappingEvent; + +@Configuration +public class MongoLogInterceptor extends AbstractMongoEventListener { + private static final Logger logger = LoggerFactory.getLogger(MongoLogInterceptor.class); + + @Override + public void onApplicationEvent(MongoMappingEvent event) { + logger.info("Mongo Event {}, {}", event.getSource(), event); + // Events captured for this - [BeforeConvertEvent, BeforeSaveEvent, AfterSaveEvent] + } +} + From f6638dac0fcc65b3c1e103c42a8582095a396bca Mon Sep 17 00:00:00 2001 From: SVAdithya Date: Wed, 31 Jul 2024 23:01:38 +0530 Subject: [PATCH 3/3] instead of adding multiple events, making it to afterSave --- .../learn/kafkastudy/interceptor/MongoLogInterceptor.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/kafka/learn/kafkastudy/interceptor/MongoLogInterceptor.java b/src/main/java/com/kafka/learn/kafkastudy/interceptor/MongoLogInterceptor.java index 1190ffb..549d522 100644 --- a/src/main/java/com/kafka/learn/kafkastudy/interceptor/MongoLogInterceptor.java +++ b/src/main/java/com/kafka/learn/kafkastudy/interceptor/MongoLogInterceptor.java @@ -4,16 +4,15 @@ import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.mapping.event.AbstractMongoEventListener; -import org.springframework.data.mongodb.core.mapping.event.MongoMappingEvent; +import org.springframework.data.mongodb.core.mapping.event.AfterSaveEvent; @Configuration public class MongoLogInterceptor extends AbstractMongoEventListener { private static final Logger logger = LoggerFactory.getLogger(MongoLogInterceptor.class); @Override - public void onApplicationEvent(MongoMappingEvent event) { - logger.info("Mongo Event {}, {}", event.getSource(), event); + public void onAfterSave(AfterSaveEvent event) { + logger.info("Mongo Save Event {}, {}", event.getSource(), event); // Events captured for this - [BeforeConvertEvent, BeforeSaveEvent, AfterSaveEvent] } } -