如果默认的 SpringApplication 不能满足你的需求,你可以创建一个 SpringApplication 本地实例对象,并对它进行自定义。
例如:关闭 Spring Boot 的 banner 功能,代码如下:
import org.springframework.boot.Banner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringapplicationDemoApplication { public static void main(String[] args) { SpringApplication app = new SpringApplication(SpringapplicationDemoApplication.class); app.setBannerMode(Banner.Mode.OFF); app.run(args); } }
传递给 SpringApplication 的构造器参数将作为 Spring Beans 的配置源,多数情况下,它们是一些 @Configuration 类的引用,但也可能是 XML 配置或要扫描包的引用。
你也可以使用 application.properties 文件来配置 SpringApplication。
如果需要创建一个分层的 ApplicationContext(多个具有父子关系的上下文),或只是喜欢使用流式(fluent)构建API,那你可以使用 SpringApplicationBuilder。SpringApplicationBuilder 允许你以链式方式调用多个方法,包括 parent 和 child 方法,这样就可以创建多层次结构,例如:
import org.springframework.boot.Banner; import org.springframework.boot.SpringApplication; import org.springframework.boot.builder.SpringApplicationBuilder; @SpringBootApplication public class SpringapplicationDemoApplication { public static void main(String[] args) { new SpringApplicationBuilder().sources(ParentApplication.class) .child(SpringapplicationDemoApplication.class) .bannerMode(Banner.Mode.OFF) .run(args); } }
注意:创建 ApplicationContext 层次时有些限制,比如,Web 组件必须包含在子上下文中,并且父上下文和子上下文使用相同的 Environment。