Springboot 2使用SpringApplication

SpringApplication

静的メソッドを使用します

SpringApplication.run(MySpringConfiguration.class, args);

コンストラクタを使用します

SpringApplication app = new SpringApplication(MySpringConfiguration.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);

ビルダーを使用してください

new SpringApplicationBuilder(Application.class)
    .bannerMode(Banner.Mode.OFF)
    .run(args);

図1に示すように、故障解析

初期設定では、一度にエラーログの印刷を開始し、操作方法を解決するために失敗することができ、アナライザFailureAnalyzerインタフェースを達成するために失敗しました。たとえば、ポートが次のようにログが印刷されたときに占有されて起動します。

2019-08-07 10:22:32.534 ERROR 2616 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

The Tomcat connector configured to listen on port 1111 failed to start. The port may already be in use or the connector may be misconfigured.

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 1111, or configure this application to listen on another port.

2、カスタムバナー

Banner.txtはspring.banner.location属性はバナーから定義されたパスを指定するクラスファイルのパスやファイル構成に追加することができます。ファイルはUTF-8をコードしない場合は、エンコーディングspring.banner.charsetを指定するように構成することができます。テキストファイルに加えて、あなたはまた、クラスパスに画像ファイルをbanner.png、banner.jpgをbanner.gifを追加、またはイメージのパスを指定spring.banner.image.locationを設定することができます。絵の後banner.txtを印刷する前に、ASCIIグラフィックに変換されます。

変数は、$ {ばねboot.version}として、banner.txtを添加Springboot現在のバージョンを取得することができます。

バナーは、符号化モード出力で指定または設定することができます。

エンコード:SpringApplication.setBanner(Mode.CONSOLE)またはSpringApplicationBuilder.bannerMode(Mode.CONSOLE)
設定ファイル:spring.main.banner-mode=console

  • OFF:無効印刷
  • CONSOLE:コンソールへのSystem.outに同意します
  • LOG:ログファイルに印刷します

3、アプリケーションイベントとリスナー

あなたはイベントリスナーを登録するSpringApplication.addListeners()またはSpringApplicationBuilder.listeners()を使用することができ、
あなたはまた、キーがorg.springframework.context.ApplicationListenerで、ファイルのMETA-INF / spring.factoriesを作成することができ、値は次のような例は、リスナーの実装クラスです。

org.springframework.context.ApplicationListener=com.example.project.MyListener

オーダーアプリケーション・イベントを送信します

  1. アプリケーションに送信する前にApplicationStartingEventが、(リスナーおよび初期化子を除く)任意の治療を開始していません
  2. ApplicationEnvironmentPreparedEventが知られている環境の環境のニーズの文脈の前に送信され、コンテキストを作成
  3. Bean定義のロードを開始する前に、ApplicationPreparedEvent後にリフレッシュを送信
  4. リフレッシュがApplicationStartedEventコンテキストの前に送られた後、呼び出し元のアプリケーションとコマンドラインプログラムを実行します
  5. ApplicationReadyEventは、アプリケーションやプログラムを実行するコマンドラインを呼び出した後に送られました。これは、アプリケーションがサービス要求に対する準備ができていることを示しています。
  6. 異常発生の送信を開始ApplicationFailedEvent

リスナーの関連する原則は参照春のイベント・リスナーソースを

4、Web環境

ウェブ環境を指定しますSpringApplication.setWebApplicationType(WebApplicationType.SERVLET)SpringApplicationBuilder.web(WebApplicationType.SERVLET)

WebApplicationType

  • なし:非Web環境、使用状況AnnotationConfigApplicationContext
  • SERVLET:Spring MVCの環境、使用状況AnnotationConfigServletWebServerApplicationContext
  • 反応性:春WebFlux環境、使用状況AnnotationConfigReactiveWebServerApplicationContext

5、パラメータの引数を指定します

このようなプログラムを実行するために使用するデバッグ・モードのように:java -jar myproject.jar --debug

6、ApplicationRunnerとCommandLineRunner

これらのインタフェースを実装するアプリケーションは、いくつかの操作を実行するために開始した後、デフォルトで最初ApplicationRunnerを実行することができます。

図7に示すように、アプリケーションを終了

各アプリケーションはSpringboot JVMは、ことを確認するために、シャットダウンフックを登録しますApplicationContext正常終了時に閉じました。あなたは(たとえば、すべての標準的な春のライフサイクルコールバックを使用することができますDisposableBeanインタフェースまたは@PreDestroy注釈を)。

Beanがために呼び出すしたい場合はまた、SpringApplication.exit()特定の終了コードに戻り、あなたが実装できるorg.springframework.boot.ExitCodeGeneratorインタフェースを。コードは、出口に渡されSystem.exit()、次のように、:

@SpringBootApplication
public class ExitCodeApplication {

    @Bean
    public ExitCodeGenerator exitCodeGenerator() {
        return () -> 42;
    }

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

}

ExitCodeGeneratorインターフェースは、例外の方法によって達成することができます。このような例外が発生すると、スプリングブート達成返すgetExitCode()終了コード方法。

8、管理

指定することでspring.application.admin.enabled、アプリケーションのプロパティの管理機能を有効にすることができます。これがしますMBeanServerプラットフォームを開きますSpringApplicationAdminMXBeanあなたは、リモートで春ブートアプリケーションを管理するには、この機能を使用することができます。任意のサービスラッパーも有用であるためにこの機能が実現されます。

注意:MBeanは、アプリケーションをクローズする方法が開示されているので、この機能を有効に注意してください。

おすすめ

転載: www.cnblogs.com/bigshark/p/11349557.html