传统的Web应用在发布之前通常会打成War包,然后将War包部署到Tomact等容器中使用,通过前面学习可知,SpringBoot应用既能以Jar包的形式部署,又能以War包的形式部署。
(一)JAR包
在Eclipse中只需执行Maven的package命令就可以将项目打成一个jar包,如下图所示:
由于项目在jar包中已经包含了Tomcat,所以我们不需要另外部署Tomcat就可以在命令行中将项目启动起来:
从图示窗口可以看出SpringBoot项目的启动信息。执行成功后,即可通过浏览器对项目进行访问。
(二)WAR包
虽然通过SpringBoot内嵌的Tomcat可以直接运行所打的jar包,但是有时候我们希望通过外部的tomcat来管理多个项目。由于jar包在Tomcat中是无法运行的,所以将项目打成War包的形式。
1、将项目的pom.xml中元素内的jar修改为war,并在文件中添加Tomcat的依赖配置。其修改和添加的配置信息如下:
上述配置代码中spring-boot-starter-tomcat是SpringBoot自带的Tomcat依赖,默认会被打到项目的lib包中。我们将其依赖范围设置为provided时,将产生一个可执行的War包,在包中lib-provided目录会有provided依赖。这样不仅可以部署到Servlet容器启动项目。还可以通过命令行执行java-jar运行此应用。
2、创建SpringBootServletInitializer子类,并覆盖其配置方法
要产生一个可部署的war包,还需要提供一个SpringBootServletInitializer子类,并覆盖它的configure()方法。
通常我们可以采用两种方式:
①是把应用的主类(引导类)修改为继承SpringBootServletlnitializer 的类,并覆盖configure()方法;
②是创建一个继承 了SpringBootServletinitializer的类,并覆盖configure()方法。以创建SpringBootServletlnitializer子类的方式为例,其子类实现代码如图所示:
3、使用 mvn package 命令打包:
进入项目工程文件路径下:
打包成功:
4、使用java -jar命令来运行该实例:
从图示窗口可以看出SpringBoot项目的启动信息。执行成功后,即可通过浏览器对项目进行访问。