以编程方式获取Embedded Servlet Container Information

Sna*_*Doc 4 spring spring-mvc spring-boot

我有一个 Spring Boot 应用程序。我想在管理控制台页面中显示当前的 Servlet 容器名称和版本。

目前,我的应用程序使用 Tomcat,但如果我要更改为 Jetty 或其他一些嵌入式 servlet 容器,我想自动显示相同的信息。

此信息无法通过Environment, 或Actuator端点获得(至少看起来如此)。

如何以编程方式获取嵌入式 servlet 容器名称和版本?

Ort*_*kni 6

您可以从ServletContext.

您可以使用以下命令自动装配它:

@Autowired ServletContext context;
Run Code Online (Sandbox Code Playgroud)

然后访问想要的信息:

context.getServerInfo()
Run Code Online (Sandbox Code Playgroud)

在带有嵌入式 Tomcat 的 Spring Boot 应用程序中,我获得了以下字符串:

Apache Tomcat/8.5.27
Run Code Online (Sandbox Code Playgroud)