Spring BootでTomcatのポート番号を変更する方法をわかりやすく解説!

こんにちは。ゆうせいです。

今回は、Spring Boot(スプリング・ブート)のプロジェクトで、組み込みTomcatサーバーのポート番号を変更する方法について、新人エンジニアの方向けに丁寧に解説していきます。

「ポートって何?」というところから、「どこをどう書き換えればいいの?」まで、しっかりカバーしますので安心してくださいね。


ポート番号とは何か?

まず、ポート番号について少し説明しましょう。

ポート番号のイメージ

ポート番号とは、サーバー内のアプリケーションごとの入り口の番号のようなものです。

例えば、学校の校舎を想像してください。校舎(サーバー)にはいくつもの教室(アプリケーション)があり、それぞれの教室には教室番号(ポート番号)があります。

誰かが校舎に入って「301教室に行きたい」と言えば、それは301番のポートにアクセスする、ということになります。


Spring BootにおけるTomcatの役割

Spring Bootでは、Tomcat(トムキャット)というWebサーバーが組み込み(組み込み=ビルトイン)で使われています。

つまり、Spring Bootアプリを起動すると、自動的にTomcatも起動して、デフォルトではポート番号8080番でアプリケーションを公開してくれるのです。

でも、8080番が他のアプリケーションとバッティングしていたら…?
そんなときはポート番号を変更する必要があります。


ポート番号を変更する方法

方法①:application.properties を使う(最も一般的)

src/main/resources/application.properties に次の1行を追加します:

server.port=8081

説明:

  • server.port:Tomcatのポート番号を指定するプロパティ
  • 8081:任意のポート番号。すでに使われていない番号を選びましょう

ポイント!

例えば「すでに8080を他のアプリが使っていて起動できない!」というときに、8081や8888などに変更するとOKです。


方法②:application.yml を使う場合

application.yml という形式の設定ファイルを使っている場合はこちら:

server:
  port: 8082

YAML形式では、インデント(字下げ)に注意してください。スペースを入れ忘れるとエラーになります!


方法③:Javaコードで変更する

Javaのコード内で直接ポート番号を設定することも可能です。

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(MyApplication.class);
        Map<String, Object> props = new HashMap<>();
        props.put("server.port", 8083);
        app.setDefaultProperties(props);
        app.run(args);
    }
}

ただし、この方法は設定ファイルでの管理ができなくなるため、あまりおすすめはしません。


よくある質問(FAQ)

Q. どのポート番号を使ってもいいの?

はい、基本的には0〜65535の範囲で自由に設定できますが、0〜1023は特権ポートと呼ばれており、システムによって使われる可能性が高いため避けましょう。

一般的には、8080, 8081, 8888, 3000などがよく使われています。


実践例:変更前と変更後の比較

状態ポート番号アクセスURL
初期設定8080http://localhost:8080
変更後8888http://localhost:8888

アプリを再起動して、新しいポートでアクセスしてみてください!


今後の学習の指針

Spring Bootでは、ポート番号以外にもさまざまな設定が簡単に変更できます。

次に学ぶべき内容としては:

  • application.propertiesでの他の設定項目(例:SSL、タイムアウトなど)
  • Spring Profilesを使った環境別の設定管理
  • 本番環境と開発環境での設定の切り替え方

こうした設定管理に慣れてくると、より柔軟で安全なアプリ開発ができるようになりますよ!


わからないところがあったら、どんどん質問してくださいね!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。