public EventPublishingRunListener(SpringApplication application, String[] args) { this.application = application; this.args = args; this.initialMulticaster = new SimpleApplicationEventMulticaster(); for (ApplicationListener<?> listener : application.getListeners()) { this.initialMulticaster.addApplicationListener(listener); } }
@Override public void contextLoaded(ConfigurableApplicationContext context) { for (ApplicationListener<?> listener : this.application.getListeners()) { if (listener instanceof ApplicationContextAware) { ((ApplicationContextAware) listener).setApplicationContext(context); } context.addApplicationListener(listener); } this.initialMulticaster.multicastEvent( new ApplicationPreparedEvent(this.application, this.args, context)); }
.setListeners(filterListeners(builderApplication.getListeners()));
@Override protected WebApplicationContext run(SpringApplication application) { Collection<ApplicationListener<?>> listeners = new ArrayList<>(); for (ApplicationListener<?> listener: application.getListeners()) { if (!(listener instanceof LoggingApplicationListener)) { listeners.add(listener); } } application.setListeners(listeners); return super.run(application); }
@SpringBootApplication public class CustomLoggingApplication { public static void main(String[] args) { SpringApplication application = new SpringApplication(CustomLoggingApplication.class); Collection<ApplicationListener<?>> listeners = new ArrayList<ApplicationListener<?>>(); for (ApplicationListener<?> listener: application.getListeners()) { if (!(listener instanceof LoggingApplicationListener)) { listeners.add(listener); } } application.setListeners(listeners); application.run(args); } }
bootstrapApplication, event.getArgs(), bootstrapEnvironment); application.getListeners().stream() .filter(listener -> listener instanceof ConfigFileApplicationListener) .forEach(listener -> ((ConfigFileApplicationListener) listener)
.setListeners(filterListeners(builderApplication.getListeners()));