我要写多个听众都会听不同的主题。一旦他们收到消息,他们将应用他们特定的业务逻辑,然后将结果发布到 TopicX
.
从面向对象的Angular 来看,我是如何看待它的
@Service
public abstract class MessageGenerator {
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
@Value("${app.topic.result}")
private String topic;
@KafkaListener(topics = "${app.kafka.incoming.topicOne}")
public void listen(@Payload String message) {
String msgToBePublished = applyBusinessLogic(message);
kafkaTemplate.send(topic, message);
}
public abstract String applyBusinessLogic(message);
}
我的想法是创建这个基类,然后实现特定的业务逻辑。通过这样做,我将处理一个冗余的Kafka相关的消息接收/发送代码。
考虑到每个实现都有不同的 incoming.topicX
听我说,我不知道如何用正确的oop方式实现它。我能想到的一些方法
我要留着吗 listen
方法专用于特定实现?
而不是创建继承模型。我可以创建一个通用的 sender
与…同班 kafkaTemplate
. 每个 businesslogic
班上会有这个 sender
类来发布消息。
你们有什么建议。
暂无答案!
目前还没有任何答案,快来回答吧!