org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat 添加Tomcat
org.apache.tomcat.embed tomcat-embed-jasper provided javax.servlet jstl war 下图是位置
package com.shop.JZShop; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意这里要指向原先用main方法执行的Application启动类 //JzShopApplication为spring boot项目本身的启动类 return builder.sources(JzShopApplication.class); } } 这个启动类要与spring boot项目的启动类在同一目录下
这里 maven 会清楚掉之前对这个项目所有的打包信息



执行后如果报错 **No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?**说明可能没有选择jdk版本,右键项目->Build Path 选择默认的jdk即可,或者根据项目所使用的jdk版本进行配置
同时window->preferences->java->installed JREs 这里需要选择jdk
如果控制台中出现 **非法字符:’\ufeff" ** 一类的错误,但查看相应文件后不存在非法字符,请再次执行Maven build ,如继续同样报错,请点击eclipse左上角file -> restart 重启eclipse 或者 右键单击 -> Maven -> Update Project 。如果上述操作不管用,那么可以用Notepad,将报错文件中的内容复制进去,以你项目整体的编码格式(如utf-8)保存一遍,然后将文件替换,即可解决。

然后在项目名上右键单击->refresh 刷新一下,在target 目录下会找到生成的war包

path 是虚拟路径;
docBase 是应用程序的物理路径;
privileged 设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet;
reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,可以在不重起tomcat的情况下,自动装载改变后的应用程序,实现热部署;
修改这一项是因为如果不添加这一句,用tomcat访问时需要加上项目名,这也是为什么doBase属性的值是项目名的原因。
因为spring boot内置的tomcat是8.5的版本,所以你所使用的tomcat也需要是8.5的版本,我最开始用的是7.0的版本,tomcat启动后报错项目启动失败。
同时 tomcat 需要配置环境变量,否则也无法正常访问页面配置环境变量请点击
mysql添加远程访问权限点这里
如果是ubuntu系统的话,点这里
上一个:vue中动态改变样式