我有這個調度程式,用于檢查資料庫表中的新資料:
@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 類和包中。
當調度運行并檢測到更改時,如何再次呼叫initializeBalances帶有注釋的Java 方法@PostConstruct以再次生成地圖結構?
uj5u.com熱心網友回復:
將您的課程注入您LogicalClient的ReloadCache課程并像這樣呼叫該函式:
@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()
}
}
你的兩個類都用@Service. 所以它們都是 Spring bean,可以在任何你認為合適的地方注入(只要接收類是 bean 本身)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/455376.html
上一篇:@Autowired或私人決賽
