题图:春节期间,北京植物园南门
Spring Boot 的应用,大都有这样的特别,你在添加了依赖之后,即使是 Web 应用,最终也可以通过 JAR 的形式运行,具体依赖的容器环境,则通过嵌入式的形式隐式的使用。
而像这些环境,Spring 的配置等,更多的隐藏在 Spring Boot 的内部,开发者可以更多的专注于「业务逻辑」的开发。
「解放了双手」的时候,话说回来,某些时候,也是有一些弊端的。比如像之前通过 WAR 文件的形式独立部署时,可以在容器内再额外部署一些「监控」应用,来观察容器的情况,应用的请求情况等,这些内容在嵌入式的时候,就有些办不从心了。
那对于 习惯了 Spring Boot 的 JAR 文件便捷运行的用户,有没有办法,能在保留 JAR 使用习惯的前提下,又能部署其他应用,来满足独立容器部署的形式和使用习惯呢?
答案是有的。鱼和熊掌,也可得兼。 后面我们会以嵌入式的 Tomcat 为例,来说明具体的实现方式。
首先,我们需要认识这一点,对于嵌入式的容器,他本质上依然还是容器,保留了容器的绝大数内容。所以,一些独立部署时的风格,接口也依然可以使用。
不熟悉 Spring Boot 内 Tomcat 工作原理的读者,可以参考这几篇旧文: