Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package domain;
- interface Data {
- public String getData();
- public void setData(String data);
- }
- package persistence;
- @Data
- class DataEntity implements Data {
- private String data; // lombok generates getter/setters
- }
- @Component
- class DataPublisher implements ApplicationListener<DataEvent> {
- @Autowired private KafkaTemplate<String,Data> template;
- // I left out DataEvent which is a straightforward ApplicationEvent override
- @EventListener(classes = DataEvent.class)
- public void onApplicationEvent(DataEvent event) {
- template.send("data", (Data) event.getSource());
- }
- }
- // triggered by this call in a service
- eventPublisher.publishEvent(new DataEvent(updatedData));
- spring:
- kafka:
- consumer:
- value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
- properties.spring.json.value.default.type: domain.Data
- @KafkaListener(topics = "data")
- public void dataUpdated(@Payload Data data) {
- dataService.updateData(data);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement