SpringBoot Web 首页定制及相关特性

本文详细介绍了SpringBoot的配置及特性,包括首页定制、惰性初始化模式、自定义启动横幅以及ApplicationRunner和CommandLineRunner的使用。通过示例展示了如何配置欢迎页的查找路径,解释了惰性初始化对应用启动时间和问题发现的影响,以及如何自定义启动时的banner内容。同时,文章还演示了如何实现ApplicationRunner接口以在应用启动后执行特定代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 首页定制

1找到WebMvcAutoConfiguration,的 welcomePageHandlerMapping方法

	@Bean
		public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext,
				FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider) {
				//welcomePageHandlerMapping 欢迎页映射器,
			WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(
					new TemplateAvailabilityProviders(applicationContext), 
					// getWelcomePage() 从那个地方找到首页
					applicationContext, getWelcomePage(),
					//staticPathPattern = "/**";
					this.mvcProperties.getStaticPathPattern());
			welcomePageHandlerMapping.setInterceptors(getInterceptors(mvcConversionService, mvcResourceUrlProvider));
			welcomePageHandlerMapping.setCorsConfigurations(getCorsConfigurations());
			return welcomePageHandlerMapping;
		}
{ "classpath:/META-INF/resources/",
			"classpath:/resources/", "classpath:/static/", "classpath:/public/" };
// 经过发现默认从以下位置找到首页

即如果访问localhost:8080 则默认在下面路径寻找首页

"classpath:/META-INF/resources/",
"classpath:/resources/", 
"classpath:/static/", 
"classpath:/public/" };

2 访问http://localhost:8080/
在这里插入图片描述

2 SpringBoot 相关特性

1 Lazy Initialization 惰性初始模式

特点

  • 可以减少应用程序启动的时间。在 web 应用程序中,启用惰性初始模式将导致许多与 web 相关的 bean 在接收到 HTTP 请求之前不会被初始化。
    缺点
  • 延迟发现应用程序的问题。如果一个配置错误的 bean 以惰性方式初始化,那么在启动过程中将不再发生故障,并且只有当 bean 被初始化时问题才会变得明显
  • 必须注意确保 JVM 有足够的内存来容纳应用程序的所有 bean

惰性初始模式在默认情况下是不启用的,建议在启用惰性初始模式之前对 JVM 的堆大小进行微调。

  • 在应用程序的其他部分使用惰性初始模式的时候禁用某些 bean,你可以使用@Lazy(false) annotation. 注释

2 打印横幅

SpringBoot 支持启动时,自定义banner设置

Springboot 艺术字网站

1 在类路径中添加 banner.txt
2 将 spring.banner.location 属性设置为该文件的位置
3 如果文件的编码不是 UTF-8,可以设置 spring.banner.charset

在 banner.txt 文件中,你可以使用以下任何占位符:

Variable 变量Description 描述
${ application.version }应用程序的版本号
${ spring-boot. version }正在使用的 Spring Boot 版本。
${ application.title }应用程序的标题
${ application.formatted-version }应用程序的版本号(带v)(v1.0)

在这里插入图片描述
如果banner.txt有图标,则说明springBoot 已经检查到自定义的banner
在这里插入图片描述

3 Using the ApplicationRunner or CommandLineRunner

如果您需要在 SpringApplication 启动后运行一些特定的代码,您可以实现 ApplicationRunner 或 CommandLineRunner 接口

  • 如果定义了多个ApplicationRunner,可以使用@Order定义他们之间的启动顺序

例子

@Component
@Order(2)
public class MyApplication implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("run");
    }
}


//

@Component
@Order(1)
public class MyApplication2 implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("run2");
    }
}

结果如图在这里插入图片描述

4 Application Exit应用程序退出

org.springframework.boot.ExitCodeGenerator 可以实现

。如果他们希望在调用 SpringApplication.exit ()时返回特定的退出代码然后可以将这个,退出代码传递给 System.exit () ,以作为状态代码返回

@SpringBootApplication
public class ExitCodeApplication {

    @Bean
    public ExitCodeGenerator exitCodeGenerator() {
        return () -> 42;
    }

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

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值