1.启动类需要继承SpringBootServletInitializer,重写方法configure
@ServletComponentScan
@SpringBootApplication
public class StartApplication extends SpringBootServletInitializer{
public static void main( String[] args )
{
SpringApplication.run(StartApplication.class, args);
}
//为了打包springboot项目
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
2.修改pom.xml的包配置为war
<groupId>com</groupId>
<artifactId>stock</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
3.右击项目-》Run As -》Maven clean,开始清理maven之前产生的相应文件,出现BUILD SUCCESS标识完成
4.右击项目-》Run As-》Maven build-》弹出框的 Goals输入 -X package,勾选Update Snapshots与Skip Tests,点击Run开始导war包
5.打包完成后,右击选择刷新项目,可以在target目录下看到导出的war包
6.把导出的war包复制到tomcat的webapp目录下
7.配置Tomcat的启动端口号,子conf目录下打开server.xml文件,修改端口号
8.从Tomcat的bin目录下双击startup.bat启动项目,第一个启动需要解析war包,速度回慢一点
9.在浏览器中输入地址进行访问,127.0.0.1:端口/导出包名/链接。注意:在eclipse中访问不用加导出包名map访问,添加在Tomcat后需要添加导出包名,否则访问出现404结果。
10.可以在pom.xml中修改配置生成的war包名称,若不配置则导出的包名为默认的名称
11.发布在tomcat上的项目,访问需要带war名称,这样容易使一些嵌套链接访问出问题,所以需要进行配置
(1)在项目的pom.xml中配置忽略spring boot内嵌tomcat,重新打war包,重新部署到tomcat中
<!-- 项目启动需要的jar包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--忽略内嵌tomcat,打包部署到tomcat。注*本地运行的时候要把这一段忽略引入个注释掉,要不然项目启动不了-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
截图:
(2)修改tomcat的conf目录下的server.xml配置信息,找到Host节点,添加 <Context docBase="/map" path="/" reloadable="true" privileged="true"/>。docBase为war包的名称map,path配置为"/",即可以不用再加前缀map访问系统