2017-05-21 3 views
2

프로젝트 작업 중, STS (Spring-Boot)를 사용 중입니다. 난 그냥 메인 마우스 오른쪽 버튼으로 프로젝트를 시작하고 봄 부팅 애플 리케이션으로 실행하고 단순히 실행됩니다. 이제 아마존 EC2 인스턴스와 같은 다른 머신에서 임베디드 바람둥이로 실행하도록 요청받습니다. 일반적인 스프링 프로젝트에서는 이전에 war 파일을 만들고 tomcat-> webapps 폴더에 넣은 다음 빈에서 시작합니다. Tomcat이 내장 된 경우 어떻게해야 Tomcat없이 내 앱을 실행할 수 있습니까? 내 전쟁 (임베디드 톰캣 의존성 포함)은 어디에서 실행됩니까? 몇 가지 해결책을 제안하십시오. 이번에는 처음 봄 부팅과 임베디드 바람둥이 작업을 권장합니다. 제안을 감사드립니다.임베디드 톰캣이있는 스프링 부트 응용 프로그램

+0

정확히 어디에서 앱을 실행해야합니까? 클라우드 서비스는 jar 파일을 실행할 수 있으므로 임베디드 tomcat에 대해 걱정할 필요가 없습니다. – MaxG

답변

4

스프링 부트 응용 프로그램 용 jar 파일을 작성하는 것이 좋습니다. 이 항아리 안에는 포함 된 바람둥이가 들어 있습니다. 그러나 당연히 전쟁 파일로 만들 수 있습니다. 두 사람 모두 실행하려면 간단히 실행할 수 있습니다 java -jar your-jar-file.jar 또는 java -jar your-war-file.war

3

pom 또는 gradle 빌드 내에서 스프링 부트 톰캣 스타터를 가져옵니다. 이렇게하면 모든 바람둥이 종속성이 앱 항아리로 전달됩니다. 임베디드 톰캣 (embedded tomcat)은 런타임시 JVM 내부에서 실행된다는 것을 의미합니다. 스프링 부트는 항아리에 종속성이있는 서버를 시작합니다. Tomcat 폴더로 전쟁을 밀어 넣고 다시 시작하는 모든 문제가 제거되었습니다. 스프링 부트 플러그인을 사용하여 jar를 빌드하십시오. mvn spring-boot : run 또는 gradle bootRun을 실행 한 다음이 jar를 실행 가능한 jar로 실행하십시오.

java -jar your-app.jar 

이것은 스프링 부트 메인 클래스를 호출합니다. 내부적으로 서버를 시작하고 애플리케이션 컨텍스트를 생성합니다. 모든 플랫폼, 지역 또는 EC2에서 작동합니다.

0

먼저 현대 Java 웹 응용 프로그램 개발의 맥락에서 warjar에 대해 설명합니다.

먼 옛날에는 응용 프로그램을 작성하여 .war 개의 파일에 패키지화하고 Linux와 같은 일부 OS에서 실행되는 서버 tomcat에 배포했습니다. 일반적으로 이러한 응용 프로그램은 크고 라이브러리 사이트와 마찬가지로 일부 service의 전체 비즈니스 논리를 반영했습니다.이 응용 프로그램은 전적으로 하나의 응용 프로그램에 의존하여 각 응용 프로그램에 대해 적절한 응답을 생성하여 요청을 처리했습니다.

시간이 지나면 웹 크기가 커집니다 : More users + more data + stronger computers = more traffic. 높은 처리량 트래픽 하에서 안정적으로 서비스를 제공하지 못했기 때문에 애플리케이션 개발 모델을 유지하기가 어려웠습니다.

이렇게하면 Microservices이 태어났습니다. 짧은 이야기를 계속하려면 Java에서 마이크로 서비스를 구축하는 가장 좋은 방법은 spring-boot을 사용하는 것이고 마이크로 서비스를 배포하는 가장 좋은 방법은 tomcat과 같이 각 마이크로 서비스에 내장 된 서버를 사용하는 것입니다. 그런 다음 이러한 마이크로 서비스는 이상적으로 클라우드에 배포됩니다 (예 : AWS). 클라우드 서비스는 jars가 기본이기 때문에 jars을 처리하는 방법을 알고 있습니다.

이제 귀하의 질문에 대해 전쟁이 어디에서 실행됩니까? 너의 전쟁은 끝나지 않을거야. 당신의 jar 파일은 클라우드 서비스에 의해 실행될 것이고, 그것은 tomcat 의존성이 내장되어 있기 때문에 기본 포트 8080에서 수신 대기하는 tomcat을 실행할 것입니다. 이것은 여러분이 만든 응용 프로그램의 게이트웨이가 될 것입니다. 클라우드 서비스는 아마도 응용 프로그램에 DNS을 할당 할 것이므로 그와 같이 통신 할 수 있습니다. tomcat 그런 식으로.

관련 문제