@RestController public class TestController { @RequestMapping("index") public String index() { return "hello"; } }
我这里的版本是8.5.37,这个是由你选用的springboot的版本定的,我选用的springboot是2.0.8版本的。好了,咱们就直接访问项目了,访问成功html
好了,咱们刚才是直接在idea中启动了这个类,固然就能够打包成jar包启动了,就不演示了,直接开始打包为war包java
<!-- 将打包方式改成war包--> <packaging>war</packaging> <!--排除骨嵌式tomcat,修改第一个依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat插件 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 咱们移除了嵌入式的tomcat,就要添加对应的tomcat依赖包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
好了,pom.xml算是改完了,这时候,咱们在idea中直接启动SpringBootApplication.java时会报如下错误 web
在咱们springboot启动类的同一个下建立一个类spring
/** * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法 */ public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意这里要指向原先用main方法执行的Application启动类 return builder.sources(SpringbootWardemoApplication.class); } }
由于打包方式为war包,全部启动这个类也就报错了,一样,也不能打包为jar包了。那么咱们就在idea中配置tomcat启动方式,tomcat的版本要和以前这个嵌入式的同样(理论上只要大版本上相同就行了,同为tomcat8.5)。更多的tomcat版本下载,见tomcat各个版本下载 在idea配置tomcat启动时可能有个小插曲,就是找不到对应的war包,你能够先使用maven打包一次,或者点击下这里 apache
咱们在idea中用tomcat方式启动后,没有问题了。api
注意如下几点 :tomcat
1.以前在springboot中一些配置不生效,最明显的就是对端口的配置springboot
2.如何修改以前的springboot项目的版本,只要在pom.xml中最开始的地方修改就能够了app
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.8.RELEASE</version> <relativePath/> </parent>
3.[如何查看本身sprinboot中对应的嵌入式的tomcat的版本](https://www.cnblogs.com/Lyn4ever/p/11667967.html)