我有一个springboot项目,它使用kafka消息,并将存储库连接到mysql的本地示例。
我的问题是,如果我在这里调用我的存储库函数来从数据库中获取字段。我得到空指针异常,发现存储库返回空。
但我也有rest控制器,并尝试从那里获取数据库数据,存储库工作正常。
问题是因为我不能在内部调用存储库函数吗?
这是我的Kafka消费者。
@Component
public class PromotionConsumer {
@Autowired
private ProducerTemplate producerTemplate;
//Repositories
private UserRepository User;
private PromotionRepository Promotion;
@KafkaListener(topics = "promotion")
public void receive(ConsumerRecord<?,?> consumerRecord) {
String kafkaRecommendationString = consumerRecord.value().toString();
String recommendationString = (kafkaRecommendationString.substring(0,kafkaRecommendationString.length() - 1)).substring(1);
String[] recommendationArray = recommendationString.split(",");
Integer user_id = Integer.parseInt(recommendationArray[0]);
Integer promotion_id = Integer.parseInt(recommendationArray[1]);
//Repository Functions
String first_name = User.findById(user_id).getfname();
String last_name = User.findById(user_id).getlname();
String promotion_name =Promotion.findById(promotion_id).getPromotionName();
String final_recommendation = promotion_name+" is recommended for "+first_name+" "+last_name;
producerTemplate.sendBody("direct:sendToMail", final_recommendation);
}
}
暂无答案!
目前还没有任何答案,快来回答吧!