Spring Bootでサーバーのポート番号を変更する方法を完全ガイド!初心者でもわかるserver.portの設定
新人
「Spring Bootで作ったアプリを起動すると、いつも8080番で動きますよね。これって変えられるんですか?」
先輩
「うん、Spring Bootではserver.portを設定することでポート番号を変更できるんだ。application.ymlに書くだけで簡単に変えられるよ。」
新人
「おおー、それなら別のアプリと競合しないようにできますね!具体的にどうやるのか知りたいです!」
先輩
「じゃあ、ポート番号の意味や変更方法を一緒に見ていこうか。」
1. サーバーのポート番号とは何か?
サーバーのポート番号とは、インターネットやネットワークで通信をするための「入り口」のようなものです。たとえば、あなたがWebブラウザで「http://localhost:8080」と入力したとき、8080がそのポート番号になります。
パソコンには一つのネットワークアドレス(IPアドレス)がありますが、同時にいろいろなサービス(メール、Web、データベースなど)を動かす必要があります。そのため、ポート番号を使ってそれぞれのサービスを区別しています。
Spring Bootで作ったWebアプリケーションも、ポート番号を使ってアクセスされます。これが「サーバーのポート番号」です。
2. デフォルトのポート番号8080について
Spring Bootでは、特別な設定をしない場合、自動的に8080番のポートでWebアプリケーションが起動します。
つまり、アプリを実行すると「http://localhost:8080」でアクセスできる状態になります。この8080という番号は、Webアプリ開発でよく使われる「開発用の標準ポート番号」です。
ただし、この8080は他のアプリケーションでもよく使われるため、競合(ぶつかる)ことがあります。すでに別のソフトが8080を使っていると、Springアプリはエラーになって起動できません。
そのため、必要に応じてポート番号を変更することが重要です。
3. なぜポート番号を変更する必要があるのか
ポート番号を変更する理由はいくつかあります。
- 既存のアプリケーションとポート番号が重複してエラーになるのを防ぐ
- 複数のSpring Bootアプリを同時に起動して使い分けたい
- セキュリティの観点から一般的でない番号にしたい
- 特定の用途や要件に応じたポートで動かす必要がある
特に開発環境では、複数のプロジェクトを同時に試すことも多く、それぞれ違うポート番号に設定しておくと便利です。
また、運用環境では管理上の理由から、他のサービスとポートが被らないよう明示的に指定するケースもあります。
Spring Bootでは設定ファイル(application.yml)を使って、簡単にポート番号を変えることができます。このあと、その具体的なやり方を見ていきましょう。
4. application.ymlファイルの役割と基本構造
Spring Bootでアプリケーションの設定を行うときに使われるのが、application.ymlというファイルです。これは、アプリの挙動を決める「設定表」のようなもので、ポート番号の指定だけでなく、データベースの接続先やログの出力レベルなど、さまざまな設定が記述できます。
ymlという拡張子は「YAML(ヤムル)」と呼ばれる形式の略で、「読みやすい」「シンプル」「構造がわかりやすい」ことが特徴です。YAMLでは、階層構造(インデント)がとても大事で、スペースの数を間違えるとエラーになることもあるので注意が必要です。
Spring Bootでは、このapplication.ymlをsrc/main/resourcesフォルダの中に作成しておくと、アプリ起動時に自動で読み込んでくれます。
5. server.portを使ったポート番号の変更手順(application.yml編)
それでは、実際にapplication.ymlを使ってポート番号を変更する方法を見てみましょう。まずはファイルをsrc/main/resourcesフォルダに作成してください。Pleiades(Eclipse)では、プロジェクトを右クリックして新規 → ファイルを選び、「application.yml」という名前で作成できます。
以下のように記述すれば、ポート番号を変更することができます。
server:
port: 9090
9090の部分は、任意のポート番号に変更できます。たとえば、8081や3000など、他のアプリと被らない番号を指定してください。
この設定により、アプリを起動したときは「http://localhost:9090」でアクセスできるようになります。
注意点として、:(コロン)の後には半角スペースが必要です。また、階層を示すインデント(字下げ)は半角スペース2つでそろえるのが一般的です。
6. コード例と実行結果の確認方法
ここでは、@Controllerを使ったシンプルなSpring Bootアプリで、ポート番号を変更した結果を確認する方法を紹介します。まず、簡単なコントローラーを作成します。
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/")
public String hello() {
return "hello";
}
}
このコントローラーは、ブラウザで「http://localhost:9090」にアクセスすると、「hello.html」というテンプレートを表示する処理です。
次に、src/main/resources/templatesフォルダにhello.htmlを作成して、以下のように記述します。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello Page</title>
</head>
<body>
<h1>こんにちは!ポート番号は変更されています!</h1>
</body>
</html>
この状態でアプリケーションを起動すると、コンソールに次のような表示がされます。
Tomcat started on port(s): 9090 (http) with context path ''
そして、ブラウザで「http://localhost:9090」にアクセスすると、先ほどのHTMLが表示されます。
こんにちは!ポート番号は変更されています!
このように、application.ymlを使って簡単にポート番号を変更できることがわかります。
また、複数のSpring Bootプロジェクトを同時に動かすときも、それぞれに異なるポート番号を設定しておけば、競合せずに実行できます。開発の幅が広がりますね。
7. よくあるエラーとトラブルシューティング
ポート番号を変更する際に、初心者の方がよくつまずくポイントやエラーの原因について紹介します。エラーを防ぐための対策もあわせて覚えておきましょう。
① ポート番号が重複している
すでに別のアプリケーションが同じポート番号で動いていると、Spring Bootアプリが起動時にエラーになります。よくあるのが8080が他のアプリと被っているパターンです。
この場合、以下のようなエラーが表示されます。
Tomcat failed to start because port 8080 is already in use
対処法としては、使用中でないポート番号に変更することです。たとえばserver.port: 9090やserver.port: 8081などに設定してみましょう。
② application.ymlの記述ミス
YAML形式は見た目がシンプルですが、インデントやスペースの間違いでエラーになることがあります。特に次の点に注意しましょう。
- インデントは半角スペースで、基本は2つずつ
:のあとに半角スペースを入れる- タブ文字を使わない
正しくない例:
server:
port:8081
正しい例:
server:
port: 8081
③ ymlファイルの場所が違う
application.ymlは、必ずsrc/main/resourcesの中に配置する必要があります。間違えて他の場所に置くと、Spring Bootが読み込んでくれません。
8. application.propertiesでもポート番号は変更できる
Spring Bootの設定ファイルには、application.ymlのほかにapplication.propertiesという形式もあります。
これはプロパティ形式の設定ファイルで、次のように1行で記述できます。
server.port=9090
書き方は違いますが、どちらも役割は同じです。application.ymlの方が階層的に書けて見やすいという理由で、最近はYAML形式を使う人が増えています。
ただし、もしプロジェクトにapplication.propertiesしか存在しない場合は、そちらに書いても問題ありません。両方が存在する場合は、Spring Bootの読み込み順によって上書きされることがあるので注意が必要です。
9. ポート番号変更の流れをもう一度おさらい
ここまで、Spring Bootアプリケーションでポート番号を変更する方法について、初心者にもわかりやすく解説してきました。最後に、実際にポートを変更する流れを簡単におさらいしておきましょう。
- PleiadesでSpring Bootプロジェクトを作成する(Gradle使用)
src/main/resourcesにapplication.ymlを作成する- 以下のように
server.portを指定する
server:
port: 9090
- アプリケーションを起動する
- ブラウザで
http://localhost:9090にアクセスする
これだけの手順で、Spring Bootアプリのポート番号を自由に変更できます。
複数プロジェクトの併用、ポートの競合回避、運用要件への対応など、いろいろな場面で役に立つ設定なので、ぜひ覚えておきましょう。