/** * Create a new {@link SpringApplication} instance. The application context will load * beans from the specified primary sources (see {@link SpringApplication class-level} * documentation for details. The instance can be customized before calling * {@link #run(String...)}. * @param resourceLoader the resource loader to use * @param primarySources the primary bean sources * @see #run(Class, String[]) * @see #setSources(Set) */ @SuppressWarnings({ "unchecked", "rawtypes" }) public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) { this.resourceLoader = resourceLoader; Assert.notNull(primarySources, "PrimarySources must not be null"); this.primarySources = new LinkedHashSet<>(Arrays.asList(primarySources)); this.webApplicationType = WebApplicationType.deduceFromClasspath(); setInitializers((Collection) getSpringFactoriesInstances( ApplicationContextInitializer.class)); setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class)); this.mainApplicationClass = deduceMainApplicationClass(); }
@Override public Environment findOne(String config, String profile, String label) { SpringApplicationBuilder builder = new SpringApplicationBuilder( PropertyPlaceholderAutoConfiguration.class); ConfigurableEnvironment environment = getEnvironment(profile); builder.environment(environment); builder.web(WebApplicationType.NONE).bannerMode(Mode.OFF); if (!logger.isDebugEnabled()) { // Make the mini-application startup less verbose builder.logStartupInfo(false); } String[] args = getArgs(config, profile, label); // Explicitly set the listeners (to exclude logging listener which would change // log levels in the caller) builder.application() .setListeners(Arrays.asList(new ConfigFileApplicationListener())); ConfigurableApplicationContext context = builder.run(args); environment.getPropertySources().remove("profiles"); try { return clean(new PassthruEnvironmentRepository(environment).findOne(config, profile, label)); } finally { context.close(); } }
private void run(String[] args) { Restarter.initialize(args, RestartInitializer.NONE); SpringApplication application = new SpringApplication( RemoteClientConfiguration.class); application.setWebApplicationType(WebApplicationType.NONE); application.setBanner(getBanner()); application.setInitializers(getInitializers()); application.setListeners(getListeners()); application.run(args); waitIndefinitely(); }
.setListeners(filterListeners(builderApplication.getListeners()));
.setListeners(Arrays.asList(new BootstrapApplicationListener(), new ConfigFileApplicationListener())); capture = builder.run();
@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); } }
public static void main(String[] args) throws Exception { long t0 = System.currentTimeMillis(); SpringApplicationBuilder builder = new SpringApplicationBuilder( BootApplication.class).web(WebApplicationType.NONE) .contextClass(AnnotationConfigApplicationContext.class) .registerShutdownHook(false); builder.application().setListeners(Collections.emptyList()); try (ConfigurableApplicationContext context = builder.run(args)) { ApplicationBuilder.start(context, b -> { System.err.println("Started HttpServer: " + (System.currentTimeMillis() - t0) + "ms"); }); } }
.setListeners(filterListeners(builderApplication.getListeners()));
.setListeners(Arrays.asList(new BootstrapApplicationListener(), new ConfigFileApplicationListener())); capture = builder.run();