यह आसानी से एक के साथ किया जाता है ApplicationListener
। मुझे स्प्रिंग की बात सुनकर यह काम मिला है 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
}
}
अनुप्रयोग श्रोता स्प्रिंग में समकालिक रूप से चलते हैं। यदि आप यह सुनिश्चित करना चाहते हैं कि आप कोड को केवल एक बार निष्पादित करें, तो बस अपने कंपोनेंट में कुछ स्थिति रखें।
अपडेट करें
स्प्रिंग 4.2+ के साथ शुरू करने से आप @EventListener
एनोटेशन का उपयोग कर सकते हैं निरीक्षण करने के लिए ContextRefreshedEvent
( इस बिंदु को इंगित करने के लिए @bphilipnyc के लिए धन्यवाद ):
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
}
}