//方法一 SpringApplication.run(PersonSpringbookApplication.class, args) //方法二 SpringApplication springApplication = new SpringApplication(PersonSpringbookApplication.class); springApplication.run(args); //方法三 SpringApplicationBuilder applicationBuilder = new SpringApplicationBuilder(); applicationBuilder.lazyInitialization(true).sources(PersonSpringbookApplication.class).run(args);
properties中添加属性 懒加载
spring.main.lazy-initialization=true
[ 表示 bean当被使用的时候才会被加载,不然不会被加载,优势:减小内存使用,启动速度变快;缺点:错误信息不能被及时看到,内存不足]java
//注: 若是使用代码的时候,properties中不能添加 spring.main.lazy-initialization 属性 SpringApplicationBuilder applicationBuilder = new SpringApplicationBuilder(); applicationBuilder.lazyInitialization(true).sources(PersonSpringbookApplication.class).run(args);
ApplicationStartingEvent
启动的时候调用该监听ApplicationEnvironmentPreparedEvent
环境执行完成调用ApplicationPreparedEvent
bean加载完成后 refresh以前调用ApplicationStartedEvent
refresh执行完成,命令行执行完成以前ApplicationReadyEvent
项目启动完成之后 触发ApplicationFailedEvent
项目启动中抛出异常 触发使用demogit
@Autowrite public class MyBean{ public MyBean(ApplicationArguments args){ System.out.println(args.containsOption("debug")); } }