SpringBoot——SpringApplication

一、SpringApplication

SpringApplication 类提供了一个方便的方法来启动 Spring 项目。

public static void main(String[] args) {
    SpringApplication.run(MySpringConfiguration.class, args);
}

在应用程序启动时,可以看下类似下面的输出内容:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.1.RELEASE)

2020-03-03 13:57:35.594  INFO 5342 --- [           main] c.s.s.Springboot01HelloworldApplication  : Starting Springboot01HelloworldApplication on yanjundong with PID 5342 (/Users/yanjundong/IdeaProjects/springboot-01-helloworld/target/classes started by yanjundong in /Users/yanjundong/IdeaProjects/springboot-01-helloworld)

默认情况下,输入 INFO 级别日志消息,包括启动相关的信息,例如启动应用程序的用户。

如果需要 调整日志的输出级别 ,可以另外设置。

1、启动失败

2、延迟初始化(Lazy Initialization)

SpringApplication允许延迟初始化应用程序。启用惰性初始化后,将根据需要创建bean,而不是在应用程序启动时就创建bean。因此,启动延迟初始化可以减少应用程序启动花费的时间。在web应用中,启动延迟初始化将导致许多web相关的bean直到接收到了 HTTP请求 才会被初始化。

延迟初始化的缺点:

  • 不能够及时发现应用的问题。如果一个配置错误的bean被延迟初始化,那这个错误就只能在启动之后才会发现。
  • 必须要确保JVM有足够的内存来容纳所有的bean,而不仅仅是启动时初始化的bean。

基于以上原因,默认情况下,是没有启动延迟初始化的。

启动延迟初始化的方式:

  • 使用 SpringApplicationBuilder 中的 lazyInitialization 方法

  • 使用 SpringApplication 中的 setLazyInitialization 方法

  • 使用 spring.main.lazy-initialization 属性配置

    spring.main.lazy-initialization=true
    

如果应用程序启动了延迟初始化,但是想要对某些bean禁用延迟初始化,可以使用 @Lazy(false) 将延迟属性设置为false

3、自定义Banner

banner.txt 文件添加到类路径(maven项目中的 resources 下)或者也可以将 spring.banner.location 属性设置为此类文件的位置来更改启动时打印的横幅。

如果文件的编码方式不是 UTF-8 ,则可以设置 spring.banner.charset

除了文本文件,还可以添加banner.gifbanner.jpgbanner.png图像文件,用法和 banner.txt 一样。

banner.txt文件内部,可以使用以下任意占位符:

变量描述
${application.version}用来获取MANIFEST.MF文件中的版本号。例如1.0
${application.formatted-version}格式化后的${application.version}版本信息。例如: v1.0
${spring-boot.version}当前使用Spring Boot的版本。例如 2.2.4.RELEASE
${spring-boot.formatted-version}格式化后的${spring-boot.version}版本信息。例如v2.2.4.RELEASE
${Ansi.NAME} (or ${AnsiColor.NAME}, ${AnsiBackground.NAME}, ${AnsiStyle.NAME})
${application.title}用来获取MANIFEST.MF文件中的应用程序的标题。例如MyApp

可以通过配置 spring.main.banner-mode属性的值来确定banner的输出位置:

  • console—— System.out(console)打印
  • log——配置的logger
  • off——不制作

默认打印的banner是作为一个单独的bean注册在 SpringBootBanner 中。

Banner字符可以通过以下网站生成:

  • http://patorjk.com/software/taag
  • http://www.network-science.de/ascii/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值