Ini mudah dilakukan dengan ApplicationListener. Saya mendapatkan ini untuk bekerja mendengarkan Spring ContextRefreshedEvent:
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
@Component
public class StartupHousekeeper implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(final ContextRefreshedEvent event) {
// do whatever you need here
}
}
Pendengar aplikasi berjalan secara sinkron di Musim Semi. Jika Anda ingin memastikan kode Anda dieksekusi hanya sekali, simpan saja beberapa status di komponen Anda.
MEMPERBARUI
Dimulai dengan Spring 4.2+ Anda juga dapat menggunakan @EventListeneranotasi untuk mengamati ContextRefreshedEvent(terima kasih kepada @bphilipnyc untuk menunjukkan ini):
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
@Component
public class StartupHousekeeper {
@EventListener(ContextRefreshedEvent.class)
public void contextRefreshedEvent() {
// do whatever you need here
}
}