Sparkの初期化処理
ちょっとやりたいことがあったので、Sparkの初期化処理を調べてたのだけど、かなり複雑です。
忘れないようにシーケンス図を張っておきます。
シーケンス図
登場人物紹介。
Spark
Serviceインスタンスをsingletonで保持し、そのインスタンスのメソッドを呼び出すためのwrapperです。
Service
ルーティングの設定、Serverの初期化などを行います。
EmbeddedServers
組込サーバーのFactoryを管理します。何もしなければEmbeddedJettyFactoryが生成され、管理されます。
EmbeddedServerFactroy(EmbeddedJettyFactory)
EmbeddedServerのfactoryです。
EmbeddedServer(EmbeddedJettyServer)
Jettyなどが提供するServerのadaptorです。
JettyServerFactory(JettyServer)
JettyのServerインスタンスを生成するためのfactoryです。
拡張
事前にEmbeddedServersにEmbeddedServerFactoryを登録しておくことで、独自の処理に差し替えを行うことができます。
public static void main(String[] args) {
EmbeddedServers.add(EmbeddedServers.Identifiers.JETTY, new MyEmbeddedServerFactory(new MyJettyServerFactory())); // 今のところキーを変更することはできないので、第一引数はEmbeddedServers.Identifiers.JETTYを指定する必要があります。
get("/", (request, response) -> "Hello World")
}
Jettyの細かい設定を行う場合は、この辺のクラスを拡張して実装を行う必要があります。
Author And Source
この問題について(Sparkの初期化処理), 我々は、より多くの情報をここで見つけました https://qiita.com/teekee/items/9286eb4d61a43a15464f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .