in rocketmq-v5-client-spring-boot/src/main/java/org/apache/rocketmq/client/autoconfigure/RocketMQTransactionConfiguration.java [56:69]
public void handleTransactionChecker(String beanName, Object bean) {
Class<?> clazz = AopProxyUtils.ultimateTargetClass(bean);
if (!TransactionChecker.class.isAssignableFrom(bean.getClass())) {
throw new IllegalStateException(clazz + " is not instance of " + TransactionChecker.class.getName());
}
RocketMQTransactionListener annotation = clazz.getAnnotation(RocketMQTransactionListener.class);
if (Objects.isNull(annotation)) {
throw new IllegalStateException("The transactionListener annotation is missing");
}
RocketMQClientTemplate rocketMQTemplate = (RocketMQClientTemplate) applicationContext.getBean(annotation.rocketMQTemplateBeanName());
if ((rocketMQTemplate.getProducerBuilder()) != null) {
rocketMQTemplate.getProducerBuilder().setTransactionChecker((TransactionChecker) bean);
}
}