b spring-boot入门介绍

本文详细介绍了Spring Boot的核心特性,包括Startup Failure处理、懒加载、自定义Banner、扩展配置如配置随机值、环境变量、yaml使用,以及Application Events和监听。还探讨了如何自定义SpringApplication、配置属性的类型安全以及应用退出的管理。同时,文章讲解了如何在不同环境中使用profile特定的配置文件,并展示了属性绑定和加密的方法。
摘要由CSDN通过智能技术生成

—> go to 总目录

4 Spring boot的特性

这个章节对Spring boot有更细的介绍。如果你可想直接用,那么前面1~3已经可以满足你了,如果你想要自定义,必须得看下面细节得介绍。

4.1 SpringApplication

SpringApplication类提供了一个便方式来启动。
在这里插入图片描述
默认log的级别-- INFO,这个可以设置请关注 Log levels
不过你可以使用利用实现得方式来关闭启动信息的打印,通过设置spring.main.log-startup-infofalse

启动时你可以覆盖SpringApplication得子类得方法
logStartupInfo(boolean)

4.1.1 Startup Failure 启动失败

你的应用启动失败时,会注册FailureAnalyzers类去提供一个描述失败信息的机会。

web引用的默认启动时8080,被占用时会报错
在这里插入图片描述
除了默认的你可以提供你自己的FailureAnalyzers,怎么添加后面有介绍。
如果想要更详细得信息
方式一: 配置文件中设置debug级别
方式二:java -jar 设置 debug
java -jar myproject-0.0.1-SNAPSHOT.jar --debug

4.1.2 懒加载

懒加载开启后,类只有在被使用时加载,而非启动时。好处是节约启动时间。web项目时,懒加载会让http request命中时才会加载相关的bean。
由于懒加载,一些问题不能在启动时暴露,比如自身的问题,或者jvm内存不足得问题,所以默认懒加载时关闭的
打开懒加载
使用在SpringApplicationBuilderlazyInitialization或者setLazyInitialization方法。会这个使用初始化的属性来打开。
在这里插入图片描述
开一个注解@Lazy(false)

4.1.3 自定义 Banner

banner是启动时打印的输出,可以自定义。可以有文字,gif.jpg,png等
详见原文
可以使用SpringApplication.setBanner(…)方法或者,使用org.springframework.boot.Banner接口,实现printBanner()即可。
你可以使用spring.main.banner-mode来决定你是打印到控制台,还是log,或者关闭。
banner,被注成csingleton,名为
springBootBanner

4.1.4 自定义 SpringApplication

在这里插入图片描述
除此之外也可以用application.properties来配置应用属性。

4.1.5 流畅的builder API 定义SpringApplication

如果你需要层次化得ApplicationContext,可以使用buildr模式,利用source标记parent,child标记子方法
在这里插入图片描述

4.1.6 应用事件和监听。

除了寻常Spring Framework的event比如ContextRefreshedEvent之外,SpringApplication还有额外的事件

一些事件是在Application创建时产生,所以你无法将listener 注册为@Bean(因为bean在其后)。但是你可以使用SpringApplication.addListeners(…)或者SpringApplicationBuilder.listeners(…)来添加监听器。
如果你想要自动注册监听器,无视应用是否被创建,你可以添加META-INF/spring.factories文件到你的工程,并引用他
org.springframework.context.ApplicationListener=com.example.project.MyListener

应用事件得发送顺序

  1. ApplicationStartingEvent产生在所有进程之前,除过listenersinitializers的注册。
  2. 在context被创建前,但Enviroment被确认后,ApplicationEnvironmentPreparedEve会发出
  3. ApplicationContextInitializedEvent被发出,当ApplicationContext被准备好,ApplicationContextInitiallizers被调用,但是在任何bean 定义被加载前
  4. ApplicationPrepareEvent在context刷新之前发送,但是在bean 定义被加载之后
  5. ApplicationStartedEvent在context刷新之后,但是在应用和command-line runners被调用之前。
  6. ApplicationReadyEvent在任何application和commamd-line调用之后,意味着应用可以去正常服务
  7. ApplicationFailedEvent在启动存在异常时抛出。

上述列表只

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值