IDEA Spring Boot 部署到tomcat

Spring Boot 部署到tomcat

Spring Boot 的jar轉war

修改啓動類

  • 默認的啓動類
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
/**
 * @SpringBootConfiguration :sprring boot配置類
 * @Configuration : spring配置類
 * @Component :有此註解代表是一個spring組件
 * @EnableAutoConfiguration 自動配置
 * @AutoConfigurationPackage 自動配置包
 * @Import({Registrar.class}) 自動配置 ‘包註冊’
 * @Import({AutoConfigurationImportSelector.class}) 自動配置導入選擇
 * getAutoConfigurationEntry方法下的
 * List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes); 獲取所有的配置
 * SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());
 * return EnableAutoConfiguration.class; 加載配置
 * 配置的核心文件 META-INF/spring.factories.(spring-boot-autoconfigure)
 */
@SpringBootApplication() 
// @SpringBootApplication(exclude= {DataSourceAutoConfiguration.class}) //去掉springboot 默認的數據源配置
public class ElasticsearchApplication {

    public static void main(String[] args) {
        SpringApplication.run(ElasticsearchApplication.class, args);
    }

}

  • 實現SpringBootServletInitializer,重寫configure()方法
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ElasticsearchApplication.class);
}

}

修改pox文件

  • 修改打包方式(修改packaging屬性)
 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.merit</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>  <!-- 將 jar修改爲 war   -->
    <name>Elasticsearch</name>
    <description>Demo project for Spring Boot</description>

IDEA Tomcat部署

去除衝突

  • 移除spring-boot-starter-web的tomca包(如果添加了spring-boot-starter-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>
        <!--<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>-->
  • 打包名字修改
<build>
    <!--打包後的名字-->
    <finalName>Elasticsearch</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!-- 在工作中,很多情況下我們打包是不想執行測試用例的可能是測試用例不完事,或是測試用例會影響數據庫數據跳過測試用例執 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <!--跳過項目運行測試用例-->
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
    </plugins>
    <!--自定義mapper時需要添加添加的-->
    <resources>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>

運行配置

  • 選擇啓動配置,添加Tomcat
    在這裏插入圖片描述

  • 配置deployment,選擇項目對應的war

在這裏插入圖片描述

在這裏插入圖片描述

  • Application context 爲上下文路徑,一般會默認追加到訪問路徑處,URL爲項目的根路徑

在這裏插入圖片描述

  • 選擇maven清除緩存,點擊install(install其實是包含clear命令的)進行打包,選擇tomcat點擊運行即可

在這裏插入圖片描述

  • 訪問地址爲tomcat上顯示的地址,idea啓動時會自動打開瀏覽器跳轉到對應地址的

單獨Tomcat部署

在maven選擇install後會在target文件夾下生成對應的war,將war包複製到tomcat的webapper下即可

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章