묠니르묘묘
꾸준히 성장하는 개발자스토리
묠니르묘묘
전체 방문자
오늘
어제
  • 분류 전체보기 (188)
    • 프로그래밍 (48)
      • 디자인패턴 (4)
      • 예외,에러 (4)
      • Java (29)
      • Kotlin (3)
      • React.js (4)
      • JavaScript (2)
      • Apache Kafka (2)
    • Spring (49)
      • Spring (21)
      • Spring Cloud (3)
      • JPA (25)
    • 코딩테스트 (31)
      • 알고리즘 (5)
      • Java - 백준 (26)
      • Java - 프로그래머스 (0)
    • AWS (7)
    • 데이터베이스 (6)
    • 개발 etc (23)
    • 도서 (5)
    • 회고록 (4)
    • 데브코스-데이터엔지니어링 (15)

인기 글

최근 글

hELLO · Designed By 정상우.
묠니르묘묘

꾸준히 성장하는 개발자스토리

로컬에서 동일한 SpringBoot 서버를 여러개 실행하는 방법
Spring/Spring

로컬에서 동일한 SpringBoot 서버를 여러개 실행하는 방법

2023. 6. 2. 17:05

스프링부트 1개의 서버를 로컬에서 여러개 띄워야하는 경우에는 여러 방법을 통해 실행할 수 있다.

 

 

🚀 IDE(통합개발환경) 사용하기

IntelliJ(인텔리제이)에서는 서버 옵션을 편하게 설정할 수 있다.

나는 인텔리제이 2022.2.3(Ultimate edition) 버전을 사용하고 있음.

 

1. 수동으로 포트번호 설정하기

 

위 사진처럼 구성 편집(Edit Configurations...) 을 클릭
서버를 복사 후 VM 옵션 추가

인텔리제이 버전마다 다르지만 내가 사용하는 버전에서는 [옵션 수정] 버튼을 눌려서 VM 옵션을 추가해야 보인다.

VM 옵션에 위 사진처럼 적기

-Dserver.port=포트번호

VM 옵션에서 [포트번호적기]에 원하는 포트번호를 적으면 해당 포트번호로 서버가 실행되게 된다.

만약 "-Dserver.port=1234" 를 적었으면 1234 포트번호로 서버를 실행시킨다는 의미이다.

참고로 복제한 것에 이름은 바꿔주고 [적용] - [확인] 을 눌려준다.

서버 실행하기

서버 실행은 평소와 똑같이하고 중지시키는 것도 똑같은 위치로 들어가서 중단시키면 된다.

 

2. 자동으로 포트번호 설정하기

https://ssdragon.tistory.com/150

 

SpringBoot 랜덤포트로 실행하기

🚀 상황 1개의 SpringBoot 서버를 여러개로 실행해야 함 따라서 포트번호를 서버마다 다르게 지정해야 함 수동으로 지정하는 것은 매번 관리하는 것이 어려움 🚀 해결 방법 server: port: 0 application.ym

ssdragon.tistory.com

위 내용에서 나온 것처럼 스프링부트 서버를 랜덤포트로 설정한다.

 

VM 옵션 삭제

수동으로 설정했던 VM 옵션부분을 삭제한 후 동일하게 실행시키면 개발자는 편하게 실행시킬 수 있다.

 

🚀 Gradle 사용하기

스프링부트 프로젝트 폴더

스프링부트 프로젝트 폴더에 있는 gradlew 를 사용한다.

인텔리제이는 터미널을 바로 사용할 수 있으므로 해당 IDE에서 gradlew를 통해 실행시켜본다.

만약 없다면 컴퓨터에서 따로 터미널을 실행시켜 해당 위치로 들어가서 진행하면 된다.

 

1. 수동으로 포트번호 설정하기

터미널에서 gradlew 실행

./gradlew bootRun --args='--serverport=포트번호'

사진이 작아서 안보이겠지만 위 명령어를 터미널에서 사용하여 서버를 실행시켰다.

 

2. 자동으로 포트번호 설정하기

포트번호를 랜덤포트로 설정했다면 아래 명령어만 입력하여 실행시키면 된다.

./gradlew bootRun

 

 

🚀 maven 사용하기

gradle이 아니라 maven 프로젝트라면 아래 명령어를 터미널에서 사용하면 된다.

mvn spring-boot:run -Dspring-boot.run.jvmArguments='-Dserver-port=포트번호'

 

만약 실패한다면 jar 파일이 없거나 설정 문제이므로 아래 명령어로 다시 패키징하여 실행해보자.

mvn clean compile package

 

이것 또한 랜덤포트로 설정해놨다면 아래 명령어로 서버를 실행하면 된다.

mvn spring-boot:run

 

 

🚀 java 사용하기

스프링부트 프로젝트를 jar로 패키징하고, jar을 java로 실행시킨다.

정확히는 JRE가 있어야하는데 개발자의 경우 JDK로 보통 설치해놨으므로 바로 실행하면 된다.

(JDK에 JRE 포함)

 

gradle 프로젝트

Gradle 프로젝트라면 위 사진 경로에 jar 파일이 있다.

없다면 아래 명령어를 실행하여 jar 파일 만든다.

./gradlew bootJar

 

maven 프로젝트

Maven 프로젝트라면 위 사진 경로에 jar 파일이 있다.

없다면 아래 명령어를 실행하여 jar 파일 만든다.

mvn package

 

이후 아래 명령어를 통해 서버를 실행한다.

java -jar "-Dserver.port=포트번호" ./build/libs/파일.jar

보면 알 수 있듯이 공백을 기준으로 맨 마지막에는 jar파일 경로를 적어주면 된다.

랜덤포트라서 VM 옵션을 추가하지 않아도 되면 아래 명령어처럼 입력하면 된다.

java -jar ./build/libs/파일.jar

 

저작자표시 비영리 (새창열림)

'Spring > Spring' 카테고리의 다른 글

스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 1편  (1) 2023.12.18
Spring Cloud Config Client에서 actuator refresh 장애  (0) 2023.07.01
SpringBoot 랜덤포트로 실행하기  (3) 2023.05.15
선착순 쿠폰 발급을 위한 redis 분산락  (0) 2023.05.11
트랜잭션을 사용할 때 각 DB들의 기본 격리 수준은 무엇일까?  (0) 2023.02.20
    'Spring/Spring' 카테고리의 다른 글
    • 스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 1편
    • Spring Cloud Config Client에서 actuator refresh 장애
    • SpringBoot 랜덤포트로 실행하기
    • 선착순 쿠폰 발급을 위한 redis 분산락
    묠니르묘묘
    묠니르묘묘

    티스토리툴바