SpringBootServletInitializer介绍及使用示例

x33g5p2x  于2022-09-25 转载在 Spring  
字(1.3k)|赞(0)|评价(0)|浏览(1280)

1 概述

在本教程中,我们将快速介绍 SpringBootServletInitializer

这是 WebApplicationInitializer 的扩展,它运行来自部署在 Web 容器上的传统 WAR 存档SpringApplication。此类将 ServletFilterServletContextInitializer bean 从应用程序上下文绑定到服务器。

pom.xml
src
├───main
│   ├───java
│   │   └───com.dailycodebuffer.example.SpringBootServlet
│   │       └───SpringBootServletApplication.java
│   │          
│   │          
│   │          
│   └───resources
└───test
    └───java

2 SpringBootServletInitializer

生成可部署的 war 文件的第一步是提供一个 SpringBootServletInitializer 子类并覆盖其 configure 方法。这样做会利用 Spring Framework 的 Servlet 3.0 支持,并允许您在应用程序由 servlet 容器启动时对其进行配置。通常,您应该更新应用程序的主类以扩展 SpringBootServletInitializer,如以下示例所示:

@SpringBootApplication
public class SpringBootServletApplication extends SpringBootServletInitializer {

	public static void main(String[] args) {

		SpringApplication.run(SpringBootServletApplication.class, args);
	}

	@Override
	protected SpringApplicationBuilder configure(
			SpringApplicationBuilder builder) {
		return builder.sources(SpringBootServletApplication.class);
	}

	@RestController
	public static class SpringBootServletController {

		@GetMapping(value = "/", produces = MediaType.TEXT_PLAIN_VALUE)
		public String handler() {
			return "Hello there";
		}
	}

}

下一步是更新您的构建配置,以便您的项目生成一个 war 文件而不是 jar 文件。如果您使用 Maven 和 spring-boot-starter-parent(为您配置 Maven 的 war 插件),您只需修改 pom.xml 将打包更改为 war,如下所示:

<packaging>war</packaging>

3 结论

在本文中,我们介绍了 SpringBootServletInitializer 并演示了如何使用它从经典 WAR 存档中运行 Spring Boot 应用程序。

相关文章

微信公众号

最新文章

更多