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 实例。
我已经使用 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 实例。