-
使用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
- 在类路径中增加文件
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容