springboot在使用起来是非常方便的, 只需要很少的配置, 也不用配置tomcat
但是部署的时候不能使用内置的tomcat, 因为外部的tomcat下面已有相关的api, 会引起冲突
在部署前将springboot的的内置tomcat去除, 然后再打包springboot项目, 再扔入外部的tomcat中
在操作前, 有必要提一下springboot的项目结构
springboot要求有数据支持, 需要在配置文件中配置数据源
主要是配置文件的位置要放入到资源文件夹下
如果直接放在根目录下, 打包后不能启动项目(亲测)
所有的资源, 页面等都放置到static下面(上面index.html是无效的, 不能访问到它)
spring boot的启动类要放置到其它类的前面
如下启动类放置比其它类少一个包
具体操作:
1.去除tomcat
在pom.xml中操作
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 去除内置tomcate -->
<!-- 只有排除内置容器,才能让外部容器运行spring-boot项目 -->
<!-- 测试的时候要关闭才能启动项目, 导出war包时再开启 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 去除内置tomcat后, 要添加如下servlet依赖包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
2.更改启动类
3.打包spring boot项目
打包springboot项目规范使用war包
在pom.xml中设置, packaging标签的内容原本是jar改为war
<groupId>com.cx.minip</groupId>
<artifactId>boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>boot</name>
<url>http://maven.apache.org</url>
4.导出
右键项目 -- run as - maven install, 如果执行成功则, 会在控制台看到生成的war的位置
就在workspace项目中的target中
5.对生成的war包改名, 最好改为ROOT.war, 然后放入到tomcat的webapps下即可
可以打开war, 看看里面的内容是否正确(注意war打开war后能看到两个文件夹META-INF和WEB-INF)