ApplicationContextInitializedEvent provides you access to ApplicationContext and SpringApplication using which you can do many things like adding listeners at runtime, invoking events etc. In below code we will see how to register this event and fail the application if it finds the value true for given property.
SpringBootTutorialApplication.java
public class SpringBootTutorialApplication{ public static void main(String[] args) { SpringApplication app = new SpringApplication(SpringBootTutorialApplication.class); //register ApplicationContextInitializedEvent event app.addListeners((ApplicationContextInitializedEvent event)->{ System.out.println("Executing ApplicationContextInitializedEvent..."); //get the property value String shouldFailed = event.getApplicationContext() .getEnvironment().getProperty("should.app.failed"); if("true".equals(shouldFailed)) { //invoke failed event event.getApplicationContext() .publishEvent(ApplicationFailedEvent.class); } }); //register ApplicationFailedEvent event app.addListeners((ApplicationFailedEvent event)->{ System.out.println("Executing ApplicationFailedEvent..."); }); //start the application app.run(args); }
application.properties
should.app.failed
Output
Below output shows that both the events are executed and failed event has caused the failure of application.
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.9.RELEASE) Executing ApplicationContextInitializedEvent... Executing ApplicationFailedEvent... 2019-10-26 12:58:06.146 ERROR 12343 --- [ main] o.s.boot.SpringApplication : Application run failed java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@358c99f5, started on Thu Jan 01 05:30:00 IST 1970
yurtdışı kargo
ReplyDeleteresimli magnet
instagram takipçi satın al
yurtdışı kargo
sms onay
dijital kartvizit
dijital kartvizit
https://nobetci-eczane.org/
CV2C4W
salt likit
ReplyDeletesalt likit
dr mood likit
big boss likit
dl likit
dark likit
L7B