[解決済み] Spring Boot - 実行中のポートを取得する方法
2022-05-14 09:28:40
質問
Spring Bootアプリケーション(embedded tomcat 7を使用)を使用しています。
server.port = 0
の中に
application.properties
で、ランダムなポートを持たせることができます。 サーバーが起動し、あるポートで実行された後、私は選択されたポートを取得できるようにする必要があります。
私は
@Value("$server.port")
はゼロだからです。 これは一見単純な情報ですが、なぜ私のJavaコードからアクセスできないのでしょうか? どうすればアクセスできるのでしょうか?
どのように解決するのですか?
正しい方向性を示してくれた @Dirk Lachowski に感謝します。 解決策は、私が望むほどエレガントではありませんが、動作するようになりました。 Spring のドキュメントを読むと、サーバーが起動したら EmbeddedServletContainerInitializedEvent をリッスンしてポートを取得することができます。 以下は、その様子です。
import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
@Component
public class MyListener implements ApplicationListener<EmbeddedServletContainerInitializedEvent> {
@Override
public void onApplicationEvent(final EmbeddedServletContainerInitializedEvent event) {
int thePort = event.getEmbeddedServletContainer().getPort();
}
}
関連
-
[解決済み] Linuxで特定のポートで動作しているプロセスを停止させる方法は?
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み】WindowsでTCPまたはUDPポートをリッスンしているプロセスを見つけるにはどうすればよいですか?
-
[解決済み] クラスを@Componentでアノテートした場合、Spring BeanとSingletonということになるのでしょうか?
-
[解決済み] Spring Boot - 実行中のポートを取得する方法
-
[解決済み] Spring Dataです。"delete by "はサポートされていますか?
-
[解決済み] Spring Boot JPA - 自動再接続の設定
-
[解決済み] Spring CrudRepositoryで大文字小文字を区別しないクエリ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン