应用可以被java main方法引导和启动,默认情况下会会有以下几个步骤引导你的应用启动。
创建一个合适的ApplicationContext实例。(取决于classpath)注册一个CommandLinePropertySource管理你的命令行参数作为Spring的属性刷新应用上下文,加载所有的单例bean触发任何CommandLineRunner相关的实例bean.很多情况类方法 run(Class, String[]) 可以直接引导启动应用。
@Configuration @EnableAutoConfiguration public class MyApplication { // ... Bean definitions public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }或者可以在run方法启动前,自定义装配SpringApplication,如下。
public static void main(String[] args) { SpringApplication application = new SpringApplication(MyApplication.class); // ... customize application settings here application.run(args) }SpringApplication可以从很多种资源方式读取beans,通常是以@Configuration类来引导应用程序读取,但是也可以从以下几种方式去设置资源。
被AnnotatedBeanDefinitionReader加载的类XmlBeanDefinitionReader加载XML的方式,或者groovy script被GroovyBeanDefinitionReader加载被ClassPathBeanDefinitionScanner扫描的包下的资源属性配置也绑定到SpringApplication中,这使得配置在SpringApplicaiton得配置是灵活多变得。例如"spring.main.web-application-type=none" (“spring.main.banner-mode=off”).
阅读警告!!本人CET4水平,大量白话翻译,阅读不畅,内容歧义还请指出-。-内容待续。。。