如何在tomcat 8下运行Spring RESTful项目?

时间:2016-09-03 09:19:19

标签: spring intellij-idea gradle spring-boot tomcat8

我正在关注下一个教程:https://spring.io/guides/gs/rest-service/

我注意到他们没有使用tomcat来运行他们的项目。他们使用" gradle run"命令运行它。 是否可以在tomcat下运行Spring项目?

另外,我想知道它是否合理。我们是否需要tomcat来运行Spring RESTful项目(也许最好运行" gradle run"命令)?

我正在使用Intellij IDEA和gradle 3.0

我有下一个build.gradle内容:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'

jar {
    baseName = 'gs-rest-service'
    version =  '0.1.0'
}

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

sourceCompatibility = 1.8
targetCompatibility = 1.8

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

教程中的所有课程

3 个答案:

答案 0 :(得分:1)

如果您想使用Spring Boot提供的嵌入式Tomcat,您可以使用spring-boot-starter-web启动器并使用spring-boot:run运行项目。

但是,当您按照提供的方式设置spring-boot-starter-tomcat时,我认为您想要使用外部Tomcat。

在这里,您可以找到用于WAR创建的documentation。您需要使用WAR gradle插件,配置Tomcat实例并像往常一样使用spring-boot:run运行项目。

  

如果您正在使用Gradle,则需要修改build.gradle以将war插件应用于项目:

     

申请插件:'war'

     

该过程的最后一步是确保嵌入式servlet容器不会干扰将部署war文件的servlet容器。为此,您需要标记所提供的嵌入式servlet容器依赖项。

     

依赖{       // ...       providedRuntime'org.springframework.boot:spring-boot-starter-tomcat'       // ...   }

答案 1 :(得分:0)

RESTful Web Service顾名思义就是在Web上运行的服务(HTTP协议)。如果你想在Web上运行任何应用程序,你需要在WEB SERVER上部署它.Tomcat是一个web服务器。是的,你需要Tomcat((或JBoss,Websphere,Weblogic,...服务器))来运行Spring或任何RESTful Web服务.Gradle是依赖管理工具,它可以帮助您构建所需的可执行文件(如Web服务中的.war) /应用)。

答案 2 :(得分:0)

我更喜欢使用Idea中的Spring Boot Run配置来运行Spring Boot项目。

只需创建一个新的运行配置并指定Application作为主类。有关官方documentation的更多信息。

但是,您也可以在Tomcat中运行它。这意味着创建一个Tomcat运行配置并在那里部署由此产生的战争,但这更加麻烦。