基础知识
拷贝how2java的第一个包下来运行报错,原因tomcat-embed-elJAR包没下完整,删除以后重新刷新下载解决
项目下有2个java类:Application.java 和HelloController.java类。由于springboot内嵌有tomcat组件,只要运行Application.java类就会自动启动tomcat。访问HelloController.java类内mapping的地址http://127.0.0.1:8080/hello就能显示返回的语句。
打包
打包成jar
在项目根目录E:\project\springboot打开cmd,输入命令mvn install
或者在cmd输入
cd E:\project\springboot
mvn install
几分钟后在本地仓库E:\m2\repository\com\how2java\springboot下得到一个jar包就是打包成功后的包,接着输入命令
java -jar target/springboot-0.0.1-SNAPSHOT.jar
完成部署,在相应地址下能看到效果。第一次访问时在cmd下能看见dispatchservlet初始化的INFO
打包成war
需要修改一些细节,Application类下增加@ServletComponentScan以及继承SpringBootServletInitializer ,重写SpringApplicationBuilder类的configure方法。pom下改打包方式为war
<packaging>war</packaging>
spring-boot-starter-tomcat修改为 provided方式
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
接下来就是打包了,输入命令
cd E:\project\springboot
mvn clean package
看到BUILD SUCCESS说明成功。打包的war包会在项目目录的.target目录下。
修改war包名字为ROOT.war后放进tomcat 的webapps目录下。
先放在tomcat7下测试,没有startup.bat,不行,但是http://127.0.0.1:8080正确访问。放在tomcat9下测试,有startup.bat,不行,但是http://127.0.0.1:8080正确访问。猜测可能需要纯净版tomcat。
再次下载纯净版测试,的确可以。http://127.0.0.1:8080则报404错误。猜测原因是非纯净版webapps目录下ROOT是一个目录,纯净版webapps目录下除了war包外是空的。