org.springframework.boot.builder

Class SpringApplicationBuilder



  • public class SpringApplicationBuilder
    extends Object
    Builder for SpringApplication and ApplicationContext instances with convenient fluent API and context hierarchy support. Simple example of a context hierarchy:
     new SpringApplicationBuilder(ParentConfig.class).child(ChildConfig.class).run(args);
     
    Another common use case is setting active profiles and default properties to set up the environment for an application:
     new SpringApplicationBuilder(Application.class).profiles("server")
                    .properties("transport=local").run(args);
     

    If your needs are simpler, consider using the static convenience methods in SpringApplication instead.

    Author:
    Dave Syer, Andy Wilkinson
    See Also:
    SpringApplication
    • Constructor Detail

      • SpringApplicationBuilder

        public SpringApplicationBuilder(Class<?>... sources)
    • Method Detail

      • context

        public ConfigurableApplicationContext context()
        Accessor for the current application context.
        Returns:
        the current application context (or null if not yet running)
      • application

        public SpringApplication application()
        Accessor for the current application.
        Returns:
        the current application (never null)
      • run

        public ConfigurableApplicationContext run(String... args)
        Create an application context (and its parent if specified) with the command line args provided. The parent is run first with the same arguments if has not yet been started.
        Parameters:
        args - the command line arguments
        Returns:
        an application context created from the current state
      • child

        public SpringApplicationBuilder child(Class<?>... sources)
        Create a child application with the provided sources. Default args and environment are copied down into the child, but everything else is a clean sheet.
        Parameters:
        sources - the sources for the application (Spring configuration)
        Returns:
        the child application builder
      • parent

        public SpringApplicationBuilder parent(Class<?>... sources)
        Add a parent application with the provided sources. Default args and environment are copied up into the parent, but everything else is a clean sheet.
        Parameters:
        sources - the sources for the application (Spring configuration)
        Returns:
        the parent builder
      • sibling

        public SpringApplicationBuilder sibling(Class<?>... sources)
        Create a sibling application (one with the same parent). A side effect of calling this method is that the current application (and its parent) are started without any arguments if they are not already running. To supply arguments when starting the current application and its parent use sibling(Class[], String...) instead.
        Parameters:
        sources - the sources for the application (Spring configuration)
        Returns:
        the new sibling builder
      • sibling

        public SpringApplicationBuilder sibling(Class<?>[] sources,
                                                String... args)
        Create a sibling application (one with the same parent). A side effect of calling this method is that the current application (and its parent) are started if they are not already running.
        Parameters:
        sources - the sources for the application (Spring configuration)
        args - the command line arguments to use when starting the current app and its parent
        Returns:
        the new sibling builder
      • sources

        public SpringApplicationBuilder sources(Class<?>... sources)
        Add more sources (configuration classes and components) to this application.
        Parameters:
        sources - the sources to add
        Returns:
        the current builder
      • web

        @Deprecated
        public SpringApplicationBuilder web(boolean webEnvironment)
        Deprecated. since 2.0.0 in favour of web(WebApplicationType)
        Flag to explicitly request a web or non-web environment (auto detected based on classpath if not set).
        Parameters:
        webEnvironment - the flag to set
        Returns:
        the current builder
      • web

        public SpringApplicationBuilder web(WebApplicationType webApplicationType)
        Flag to explicitly request a specific type of web application. Auto-detected based on the classpath if not set.
        Parameters:
        webApplicationType - the type of web application
        Returns:
        the current builder
        Since:
        2.0.0
      • logStartupInfo

        public SpringApplicationBuilder logStartupInfo(boolean logStartupInfo)
        Flag to indicate the startup information should be logged.
        Parameters:
        logStartupInfo - the flag to set. Default true.
        Returns:
        the current builder
      • banner

        public SpringApplicationBuilder banner(Banner banner)
        Sets the Banner instance which will be used to print the banner when no static banner file is provided.
        Parameters:
        banner - the banner to use
        Returns:
        the current builder
      • headless

        public SpringApplicationBuilder headless(boolean headless)
        Sets if the application is headless and should not instantiate AWT. Defaults to true to prevent java icons appearing.
        Parameters:
        headless - if the application is headless
        Returns:
        the current builder
      • registerShutdownHook

        public SpringApplicationBuilder registerShutdownHook(boolean registerShutdownHook)
        Sets if the created ApplicationContext should have a shutdown hook registered.
        Parameters:
        registerShutdownHook - if the shutdown hook should be registered
        Returns:
        the current builder
      • main

        public SpringApplicationBuilder main(Class<?> mainApplicationClass)
        Fixes the main application class that is used to anchor the startup messages.
        Parameters:
        mainApplicationClass - the class to use.
        Returns:
        the current builder
      • addCommandLineProperties

        public SpringApplicationBuilder addCommandLineProperties(boolean addCommandLineProperties)
        Flag to indicate that command line arguments should be added to the environment.
        Parameters:
        addCommandLineProperties - the flag to set. Default true.
        Returns:
        the current builder
      • properties

        public SpringApplicationBuilder properties(String... defaultProperties)
        Default properties for the environment in the form key=value or key:value.
        Parameters:
        defaultProperties - the properties to set.
        Returns:
        the current builder
      • properties

        public SpringApplicationBuilder properties(Properties defaultProperties)
        Default properties for the environment in the form key=value or key:value.
        Parameters:
        defaultProperties - the properties to set.
        Returns:
        the current builder
      • profiles

        public SpringApplicationBuilder profiles(String... profiles)
        Add to the active Spring profiles for this app (and its parent and children).
        Parameters:
        profiles - the profiles to add.
        Returns:
        the current builder
      • beanNameGenerator

        public SpringApplicationBuilder beanNameGenerator(BeanNameGenerator beanNameGenerator)
        Bean name generator for automatically generated bean names in the application context.
        Parameters:
        beanNameGenerator - the generator to set.
        Returns:
        the current builder
      • resourceLoader

        public SpringApplicationBuilder resourceLoader(ResourceLoader resourceLoader)
        ResourceLoader for the application context. If a custom class loader is needed, this is where it would be added.
        Parameters:
        resourceLoader - the resource loader to set.
        Returns:
        the current builder