插入新数据时调用服务

Call service when new data is inserted

我有这个调度程序,用于将新数据检查到数据库中 table:

@Service
public class ReloadCache {

    @Scheduled(fixedDelay = 1000)
    public void reload() {
       ...... do something 
    }
}

......

@Service
public class LogicalClient {

      final Map<String, Map<String, String>> map;


      @PostConstruct
      public void initializeBalances() {
      ............ map = new HashMap.......
      }


      @KafkaListener(......")
      public void handle(....) {
      .......read map here
      }
}

请注意,这两项服务位于单独的 Java 类 和包中。

当计划运行并检测到更改时,我如何才能再次调用 Java 方法 initializeBalances@PostConstruct 注释以便再次生成映射结构?

将你的 LogicalClient 注入你的 ReloadCache class 并像这样调用该函数:

@Service
public class ReloadCache {
    private final LogicalClient logicalClient;

    public ReloadCache(LogicalClient client) // Injection through constructor.
    {
        this.logicalClient = client;
    }

    @Scheduled(fixedDelay = 1000)
    public void reload() {
        ...... do something
        client.initializeBalances()
    }
}

您的两个 class 都带有 @Service 注释。所以它们都是 Spring bean,可以在任何你认为合适的地方注入(只要接收 class 本身就是一个 bean)。