Contents
発生時のログ
2021-02-11 11:15:13.926 ERROR 10492 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : 
***************************
APPLICATION FAILED TO START
***************************
Description:
Web server failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.Web server failed to start. Port 8080 was already in use.の発生理由
8080ポートでサーバーを起動しようとしたが、既に8080ポートが使われているため、サーバーが起動できなかった。
IntelliJやEclipseで何度もSpringBootアプリケーションを再起動していると、動いているSpringBootアプリケーションが終了されずに残ってしまうことがあります。
その状態でSpringBootアプリケーションを起動しようとすると、残っているものとバッティングするため、「Web server failed to start. Port 8080 was already in use.」が発生します。
解決策1–既に起動されているサーバーを終了させる。
Windowsの場合
1.ポートを利用しているPIDを特定する
>netstat -nao | find "8081"
  TCP         0.0.0.0:8081           0.0.0.0:0              LISTENING       13048
  TCP         [::]:8081              [::]:0                 LISTENING       13048上記コマンドを打って、指定ポートを使用しているPIDを調べます。
上の結果では、PID=13048が8081を使用していると判明しました。
2.PIDを元にプロセスを終了させる

タスクマネージャーを開き、詳細タブを見ます。
PID列が1で調べたPIDになっている行を見つけます。
その行を選択し、右下のタスクの終了を押します。

「javaw.exeを終了しますか?」と聞かれるため、「プロセスの終了」を押してください。
リストから「javaw.exe」が消えたら(プロセスが終了できたら)、IntelliJまたはEclipseでいつも通り起動することができるようになっています。
補足 javaw.exeって?

「javaw.exe」はSpringBootアプリケーションを起動するときに、Eclipse等が裏で実行しているプログラムです。
Mac/Linuxの場合
lsofコマンドで8080ポートを使用しているPIDを調べて、killコマンドでそのPIDを終了させます。
$ lsof -i:8080
COMMAND PID USER
java.   1234 xxx
$ kill 1234
($ kill -9 5703)$ kill PID で消えない場合は、-9オプションを付与すると、強制終了できます。
解決策2–別のポート番号を指定して起動する。
Spring Bootでは、プロパティファイル(application.ymlまたはapplication.properties)でサーバーのポート番号を指定できます。
8081は任意のポート番号を指定できます。
server:
  port: 8081server.port=8081ポート番号を記述してから、サーバーを起動すると、8080ではなく指定したポート番号で起動できるため、正常にサーバーを起動できるようになります。
フロントエンドとバックエンドを分けて開発している場合、フロントエンド(例えばvue.js)が8080で起動されている時に、バックエンドのSpringBootアプリケーションも8080で起動しようとして「Web server failed to start. Port 8080 was already in use.」が発生するケースが多いです。