先写一个测试接口
1 package com.example.demo; 2 3 import org.springframework.web.bind.annotation.RequestMapping; 4 import org.springframework.web.bind.annotation.RestController; 5 6 @RestController 7 public class DemoController { 8 9 @RequestMapping("/test")10 String hello() {11 return "hello";12 }13 }
一 jar形式(1)pom.xml <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> (2)在Terminal中执行 mvn clean package
mvn clean package -Dmaven.test.skip=true //跳过测试
打包后的jar demo-0.0.1-SNAPSHOT.jar(3)在Target下 执行 java -jar demo-0.0.1-SNAPSHOT.jar(4)启动成功后在浏览器中输入 http://localhost:8080/test可以看到浏览器中出现测试接口的返回值hello二 war形式war包需要在tomcat的webapps下运行(1)pom.xml修改 <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> (2)将启动类继承SpringBootServletInitializer重写configure(SpringApplicationBuilder builder)方法1 package com.example.demo; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.boot.builder.SpringApplicationBuilder; 6 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; 7 8 @SpringBootApplication 9 public class DemoApplication extends SpringBootServletInitializer {10 11 public static void main(String[] args) {12 SpringApplication.run(DemoApplication.class, args);13 }14 15 @Override16 protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){17 return builder.sources(DemoApplication.class);18 }19 }
(3)在Terminal中执行 mvn clean package 打包后的war demo-0.0.1-SNAPSHOT.war(4)将demo-0.0.1-SNAPSHOT.war 拷贝到tomcat下的webapps文件夹下在tomcat运行时会自动将war解压的webapps下 运行tomcat下bin中的startup.bat (5)启动成功后在浏览器中输入 http://localhost:8080/demo-0.0.1-SNAPSHOT/test可以看到浏览器中出现测试接口的返回值hello
(6)如果在url中想不带项目名称的话,直接把tomcat-->webapps中的ROOT文件删掉,将demo-0.0.1-SNAPSHOT.war重命名为ROOT.war即可
补充:如果启动tomcat失败 不一定是程序的问题 有可能是tomcat的版本问题或者tomcat中有些配置文件被修改了 ,可以换成其他版本试试 或者重新到Apache(http://tomcat.apache.org/)上重新下载一个试试在我本地使用tomcat7 会报错 但是使用tomcat8 tomcat9 却能正常跑起来