SpringBoot文档之SpringApplication的阅读笔记
- Reference
- Core Features
- SpringApplication
使用SpringBoot开发应用,最简单的启动类,代码内容如下:- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- @SpringBootApplication
- public class MyApplication {
- public static void main(String[] args) {
- SpringApplication.run(MyApplication.class, args);
- }
- }
复制代码 当SpringBoot应用步伐启动失败时,通过定制FailureAnalyzer可以得到详细的错误描述信息。
SpringBoot允许应用开发者注册自定义的FailureAnalyzer的实现类,实现方法可参考文档。
SpringBoot提供延迟初始化特性,允许Bean在使用时才完成构建和初始化操作,无需在启动时即完成全部Bean的构建和初始化操作。
使用延迟初始化特性的优点,可以加速应用步伐启动,紧缩启动时间。
使用延迟初始化特性的缺点,应用启动时只有部分须要的Bean完成了初始化,在处理业务时才会完成Bean的构建和初始化,可能掩盖一些步伐逻辑层面的题目。
使用延迟初始化特性时,需要考虑为Java应用分配足够的资源,避免触发Bean的构建和初始化,由于资源不足而失败。
在配置文件中增长如下配置,可以启用延迟初始化特性:- spring:
- main:
- lazy-initialization: true
复制代码 对于关键的Bean,不期望使用延迟初始化特性,可以在类名上增长注解@Lazy(false),关闭延迟初始化特性。
如下是SpringBoot应用步伐启动时在控制台输出的Banner。- . ____ _ __ _ _
- /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
- ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
- \\/ ___)| |_)| | | | | || (_| | ) ) ) )
- ' |____| .__|_| |_|_| |_\__, | / / / /
- =========|_|==============|___/=/_/_/_/
- :: Spring Boot :: (v3.3.2)
复制代码 SpringBoot允许开发者定制Banner,操作方法如下:
- 在类路径中增长文件banner.txt。
- 使用属性spring.banner.location指定banner.txt的位置。
SpringBoot在读取banner.txt时,默认文件编码为UTF-8。通过修改属性spring.banner.charset,可以修改解析banner.txt时的编码格式。
关闭Banner,样例代码,如下:- import org.springframework.boot.Banner;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- @SpringBootApplication
- public class MyApplication {
- public static void main(String[] args) {
- SpringApplication application = new SpringApplication(MyApplication.class);
- application.setBannerMode(Banner.Mode.OFF);
- application.run(args);
- }
- }
复制代码 SpringBoot框架在应用启动过程中,按序触发如下事件:
- ApplicationStartingEvent
- ApplicationEnvironmentPreparedEvent
- ApplicationContextInitializedEvent
- ApplicationPreparedEvent
- ApplicationStartedEvent
- AvailabilityChangeEvent
- ApplicationReadyEvent
- AvailabilityChangeEvent
- ApplicationFailedEvent
对于实现接口ApplicationContextAware的Bean,SpringBoot应用初始化过程中会自动注入ApplicationContext对象的实例。
对于一般的应用开发者而言,对上述事件仅做基本了解即可。
通过定义Bean来接收ApplicationArguments,可以读取SpringBoot应用启动时的命令行参数。
在SpringApplication运行后,执行一些业务相关的代码,可以定义实现接口ApplicationRunner大概CommandLineRunner的Bean。
SpringBoot允许开发者定义多个实现ApplicationRunner大概CommandLineRunner的Bean,这些Bean之间的执行顺序,可以通过实现接口org.springframework.core.Ordered大概使用注解org.springframework.core.annotation.Order来定制。
SpringBoot允许开发者通过实现ExitCodeGenerator接口的Bean来定制步伐退出时的错误码,借以满意特定运行环境、特定业务场景的诉求。
修改SpringBoot应用的配置文件,增长配置项spring.application.admin.enabled并指定为true,可以开启管理特性。
假如开发者使用Java 21来开发、运行SpringBoot应用步伐,可以考虑增长如下配置项,并指定为true,从而启用Java 21的virtual threads特性。
- spring.threads.virtual.enabled
- spring.main.keep-alive
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |