Tomcat上的Spring REST服务与Gradle

时间:2015-01-08 18:20:53

标签: java spring rest tomcat

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

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

我甚至可能没有走上正轨。我还阅读了有关将.jar部署为REST端点的内容,但我不知道从哪里开始。

如果有人能够高度概述一下需要做些什么才能获得Spring REST服务,例如在Tomcat实例上运行的here,我会非常感激。

Java 8 弹簧 Gradle 2.2.1 Windows 7

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

由于听起来您使用的是Spring Boot,因此您只需要将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")
    ...
}

然后你的战争应该可以部署到外部Tomcat实例。