如何部署"Building REST Services with Spring"教程?



作为一个刚接触Java和Spring的人,我一直在学习他们的REST API教程。引入了一个常规工作流,您可以在其中嵌入 Jetty/Tomcat,然后运行可执行的 Jar 文件。当引入使用 Spring 构建 REST 服务教程时,此工作流似乎发生了变化。他们的书签演示项目使用多模块 maven 配置。似乎没有在任何地方定义主清单属性。

Maven 配置当前为每个模块生成一个单独的 jar。

理想的目标是采用书签演示项目,将 Swagger 添加到其中,并在 Docker 中循环。现实的目标是使用Jetty或Tomcat运行项目。

你知道我如何使用 Jetty 或 Tomcat 部署 Spring 书签演示吗?谢谢你的时间。

可以在这里找到指南,但简而言之,这些是您必须做的事情:

  1. 注释为 @SpringBootApplication 的类(main 方法所在的位置)必须扩展SpringBootServletInitializer并重写配置方法(下面的基本示例)
  2. 修改构建系统以生成 WAR 文件
  3. 马克雄猫/码头提供
  4. 将 WAR 文件部署到容器(有很多方法可以做到这一点,但它们独立于您的实现)

    @SpringBootApplication
    public class Application extends SpringBootServletInitializer {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
        }
        public static void main(String[] args) throws Exception {
            SpringApplication.run(Application.class, args);
        }
    }
    

有一个

SpringBoot Getting Started Guide for Docker,我建议你在更改任何内容之前先浏览一下,因为 SpringBoot 具有广泛的 Docker 支持,你可能不需要将应用程序更改为 WAR 文件。

如果项目是 maven 项目,则使用包目标使用"mvn 包"构建部署单元并部署生成的 .war(假设这就是您的配置方式)。

如果该示例已经配置为与嵌入式 Jetty 一起运行,那么您不需要构建一个可部署的单元并将其部署到其他任何地方,您只需运行它 - 这就是嵌入式容器的重点;它已经配置为包含它自己的运行时,您只需运行它。

最新更新