spring引导kafka消费者到存储库记录

gg58donl  于 2021-06-07  发布在  Kafka
关注(0)|答案(0)|浏览(197)

我有一个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);
  }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题