弄好了springBoot项目,不能只在eclipse上跑吧,也想在LInux上跑,怎么办呢?不用说,肯定是在linux的Tomcat下也能滚动才舒爽。
本事例默认环境:
Linux:
含有JDK1.7及以上
apache-tomcat-7.0.52
本篇幅中利用工程为,入门程序
jar部署(tomcat内嵌)
我们目前的工程采用的是jar 的打包方式,所以我们在执行package 命令后,
会产生一个jar 包。
我们进入到这个目录用压缩软件打开此jar 包,其中我们发现了一个叫lib 的文件夹,打开lib 文件夹发现此文件夹下全是工程依赖的jar 包,甚至还有tomcat。这种包含有jar 包的jar包,我们称之为fatJAR( 胖jar 包)
1、打jar包(因为jar包内含有tomcat,因此内嵌)
第一步:在pom.xml配置spring-boot的插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
:使你允许打包
第二步:执行package
第三步:java -jar xxx.jar(运行)
内嵌tomcat参数修改
在application.properties设置相关参数即可,如:
# 设置tomcat端口 server.port=80 # 设置服务地址 server.address=127.0.0.2 # 设置超时时间 server.connection-timeout=1000 # 设置上下文路径 server.contextPath=/boot |
War部署
但是,有时候我们更希望一个tomcat 来管理多个项目,
这种情况下就需要项目是war 格式的包而不是jar 格式的包。我们按照以下步骤完成对工程的改造
第一步:修改pom.xml
<!-- 配置打包方式为war包 -->
<packaging>war</packaging>
<!-- 配置tomcat启动器(tomcat我们自己提供) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
说明:spring-boot-starter-tomcat 是原来被传递过来的依赖,默认会打到包里,所以我们再次引入此依赖,并指定依赖范围为provided,这样tomcat 相关的jar
就不会打包到war 里了。
目的:我们用自己tomcat,不用它内嵌的tomcat,这样内嵌的tomcat相关jar包就不需要。
第二步:添加ServletInitializer(作为web.xml使用)
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
/** 定义此类作为web.xml使用 */
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
/** 设置启动类 */
builder.sources(Application.class);
/** 设置横幅模式 */
builder.bannerMode(Mode.OFF);
/** 返回SpringBoot应用启动对象 */
return builder;
}
}
说明:由于我们采用web3.0 规范,是没有web.xml 的,而此类的作用与web.xml
相同。
第三步:运行package 打包命令生成war 包
生成后将war 包放入tomcat,启动tomcat,测试完成的功能是否可以使用。