SpringBootは問題に99%を解決するため、4つの質問に8つの原則とソリューションを発売しました

問題SpringBootマルチモジュールのリリースの99%を解決しますか?8つの原則と4つの問題をリリースしSpringBootソリューション

あなたはマルチモジュールプロジェクトSpringBootを使用している場合は、発行時点でさまざまな問題が発生する可能性があります。この記事では、これらの原則およびソリューションは、ほぼ圧倒的な数SpringBootポスト疑問を解決することができますマスターし、多くの場合、表示され、4つの問題を公開する以下の8つの原則で解決策をまとめました。

SpringBootマルチモジュールは、8つの主要な原則をリリース

Publishingモジュールのパッケージではなく、親モジュールパッケージの1

たとえば、次のプロジェクトディレクトリ:

あなたが直接そのAPIモジュールパッケージでそれを公開したい場合は、よりむしろ親モジュールにパッケージ化。

包装タイプのjar形式に公開呼び出しモジュール2、

このようなモデルとのpom.xmlに配置されたジャーに共通のパッケージ形式を設定する必要があるなどの一般的なモジュール:

<packaging>jar</packaging>

3は、モジュールの実装方式の規格争いを解放するために設定されています

pom.xmlにリリースモジュールで設定します。

<packaging>war</packaging>

4内蔵のTomcatを除外

pom.xmlにリリースモジュールで設定します。

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-tomcat</artifactId>
 <scope>provided</scope>
</dependency>

スコープ=提供を設定する場合、このjarパッケージには、組み込みのTomcatを除外パブリケーションのアーティクルに表示されません。

5起動クラスを設定します。

このステップでは、開始ようにTomcatを伝える入り口に対応しています。次のコードの起動クラスを追加する必要があります。

@SpringBootApplication
public class ApiApplication extends SpringBootServletInitializer {
 @Override
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
 return application.sources(ApiApplication.class);
 }
 public static void main(String[] args) {
 SpringApplication.run(ApiApplication.class, args);
 }
}

6つのを使用している場合インターセプタは、静的ファイルを除外する必要があります

たとえば、次のように私はこのプロジェクトで闊歩を使用し、その後、私は、静的ファイルの闊歩を除外するために必要な、コードは次のとおりです。

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
 @Override
 protected void addResourceHandlers(ResourceHandlerRegistry registry) {
 // 排除静态文件
 registry.addResourceHandler("swagger-ui.html")
 .addResourceLocations("classpath:/META-INF/resources/");
 registry.addResourceHandler("/webjars/**")
 .addResourceLocations("classpath:/META-INF/resources/webjars/");
 }
 // do something
}

図7は、第1の共通のモジュールをロードし、プロジェクトを公開しています

プロジェクトのモジュールが参照する他の公共のモジュールのリリースは、このプロジェクトの最初のモジュールへの公共の必要性は、ローカルリポジトリにロードされた場合。

操作、以下に示すように、プロジェクトのパッケージを完了するために、戦争のパッケージ生成モジュールパッケージを公開し、正常にインストールした後、[インストール]をクリックして親モジュールをダブルクリックします。

8展開プロジェクト

戦争のパッケージの後で、パッケージには、以下に示すように、Tomcatを再起動するには、Tomcatのwebappsディレクトリに、ただ一つの戦争が必要です。

以下に示すように項目の通常の動作は、ディレクトリのwebappsフォルダに同じ名前を生成します。

完成以上配置,就可以 happy 的访问自己发布的项目了。

可能出现的问题和解决方案

问题一:SpringBoot 配置了端口号影不影响程序发布?

答:不影响,配置的 server.port 会被覆盖,以 tomcat 本身的端口号为准,tomcat 端口号在 tomcat/config/server.xml 文件中配置。

问题二:发布报错,不能找到其他模块或项目中的公共模块,怎么办?

答:因为没有执行父节点 maven 的 install 操作,install 就是把公共模块放入本地仓库,提供给其它项目使用。

问题三:不能找到 SpringBoot 运行的 main 类,怎么办?

答:因为没有设置启动类导致的,设置方式:

  • pom.xml 配置启动类,配置 configuration><mainClass>com.bi.api.ApiApplication</mainClass></configuration> 。
  • 启动类继承 SpringBootServletInitializer 实现 SpringApplicationBuilder 方法,具体代码参考文中第五部分。
  • 问题四:把 SpringBoot 项目部署到 Tomcat 7 一直提示找不到 xxx.jar 包?
  • 答:这是因为 SpringBoot 版本太高,tomcat 版本太低的原因。如果你使用的是最新版的 SpringBoot,可以考虑把 tomcat 也升级为 tomcat 8.x+ 最新的版本,就可以解决这个问题。

おすすめ

転載: blog.csdn.net/qwe123147369/article/details/93193660