Spring Tomcat 上的 REST 服务 Gradle

Spring REST Service on Tomcat with Gradle

我已经使用 Spring 创建了一个 REST 服务,但我无法理解如何将其部署到 Tomcat 服务器。

我熟悉将应用程序放在带有 servlet 映射等的 Tomcat 实例上,但似乎这一切都在 Java [=] 中的 Spring 注释中处理20=]es。我在 Gradle 中启用了 'war' 插件,一切似乎都可以正常导出。我只是感到困惑,因为 Spring 需要一个应用程序 class 来运行控制器,所以我如何让它与 web.xml 文件之类的东西一起工作?

我什至可能走错了路。我还阅读了一些有关将 .jar 部署为 REST 端点的内容,但我不知道从哪里开始。

如果有人可以给我一个高级概述,说明需要做什么才能获得 Spring REST 服务,例如构建 here 在 [=26= 上运行的服务] 例如,我将不胜感激。

Java 8 Spring Gradle2.2.1 Windows7

您需要使用 Spring servlet 和 spring 上下文创建一个应用程序(war 程序包)(互联网上有很多教程)。您需要包括组件扫描(请参阅此处的文章 http://www.mkyong.com/spring/spring-auto-scanning-components/ 以获取示例)。

Spring 扫描组件(和您的控制器)并识别@Controller 或@RestController 注释并自动将其分配给路由。就是这样 :).

因为听起来您正在使用 Spring 启动,您应该只需要将 Tomcat 依赖项标记为 providedRuntime,如 http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-gradle-packaging 所述:

...
apply plugin: 'war'

war {
    baseName = 'myapp'
    version =  '0.5.0'
}

repositories {
    jcenter()
    maven { url "http://repo.spring.io/libs-snapshot" }
}

configurations {
    providedRuntime
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
    ...
}

那么您的 war 应该可以部署到外部 Tomcat 实例。