第一種 打war包 外部tomcat運行,springboot項目需要在外部Tomcat 9 下運行
因爲Springboot項目是靠main程序啓動,所以在外部tomcat啓動時,要去掉內置的tomcat
在pom.xml 移除tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除內嵌的tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
第二步:編寫tomcat啓動的入口工程 因爲springboot是main啓動 tomcat不知道
我是在啓動類包下面見得類
public class StartTomcat extends SpringBootServletInitializer{
//覆蓋方法名稱
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
//調用builder構造方法,完成當前的方法指向main方法過程
return builder.sources(SpringbootStart.class);
}
}
第二種方式 直接在jdk環境下運行war包(運行環境和編譯環境版本 大版本一致)
java -jar **.jar/**.war可以在jdk環境運行一個jar包或者war包,必須在包中配置main方法所在的類路徑;
利用springboot-maven的插件,在maven install的時候將main方法所在啓動類放到配置文件中
不放置的話會報沒有主清單屬性,就是說沒有指定main方法的位置
<build>
<!-- 打包時的文件名稱 -->
<finalName>Springboot-war</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
添加之後打war包
運行 java -jar 名字.war 因爲現在運行的是一個獨立的springboot項目所以可以用java -jar 啓動
兩種方式啓動沒有絕對行,jdk啓動比較簡單