프로젝트 작업 중, STS (Spring-Boot)를 사용 중입니다. 난 그냥 메인 마우스 오른쪽 버튼으로 프로젝트를 시작하고 봄 부팅 애플 리케이션으로 실행하고 단순히 실행됩니다. 이제 아마존 EC2 인스턴스와 같은 다른 머신에서 임베디드 바람둥이로 실행하도록 요청받습니다. 일반적인 스프링 프로젝트에서는 이전에 war 파일을 만들고 tomcat-> webapps 폴더에 넣은 다음 빈에서 시작합니다. Tomcat이 내장 된 경우 어떻게해야 Tomcat없이 내 앱을 실행할 수 있습니까? 내 전쟁 (임베디드 톰캣 의존성 포함)은 어디에서 실행됩니까? 몇 가지 해결책을 제안하십시오. 이번에는 처음 봄 부팅과 임베디드 바람둥이 작업을 권장합니다. 제안을 감사드립니다.임베디드 톰캣이있는 스프링 부트 응용 프로그램
답변
스프링 부트 응용 프로그램 용 jar 파일을 작성하는 것이 좋습니다. 이 항아리 안에는 포함 된 바람둥이가 들어 있습니다. 그러나 당연히 전쟁 파일로 만들 수 있습니다. 두 사람 모두 실행하려면 간단히 실행할 수 있습니다 java -jar your-jar-file.jar
또는 java -jar your-war-file.war
pom 또는 gradle 빌드 내에서 스프링 부트 톰캣 스타터를 가져옵니다. 이렇게하면 모든 바람둥이 종속성이 앱 항아리로 전달됩니다. 임베디드 톰캣 (embedded tomcat)은 런타임시 JVM 내부에서 실행된다는 것을 의미합니다. 스프링 부트는 항아리에 종속성이있는 서버를 시작합니다. Tomcat 폴더로 전쟁을 밀어 넣고 다시 시작하는 모든 문제가 제거되었습니다. 스프링 부트 플러그인을 사용하여 jar를 빌드하십시오. mvn spring-boot : run 또는 gradle bootRun을 실행 한 다음이 jar를 실행 가능한 jar로 실행하십시오.
java -jar your-app.jar
이것은 스프링 부트 메인 클래스를 호출합니다. 내부적으로 서버를 시작하고 애플리케이션 컨텍스트를 생성합니다. 모든 플랫폼, 지역 또는 EC2에서 작동합니다.
먼저 현대 Java 웹 응용 프로그램 개발의 맥락에서 war
과 jar
에 대해 설명합니다.
먼 옛날에는 응용 프로그램을 작성하여 .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
그런 식으로.
- 1. 임베디드 톰캣이있는 스프링 부트 응용 프로그램에서 도메인 이름 설정
- 2. 스프링 부트 응용 프로그램
- 3. 톰캣이있는 부트 스트랩 btn 높이
- 4. 스프링 부트 임베디드 톰캣 성능
- 5. 스프링 부트 응용 프로그램 배포
- 6. 포함 된 톰캣이있는 Java 웹 응용 프로그램
- 7. 스프링 부트 데이터 임베디드 Cassandra
- 8. 스프링 부트 응용 프로그램 특정 외부 속성
- 9. 단일 포트를 사용하는 스프링 부트 응용 프로그램
- 10. JMH 벤치마킹 스프링 부트 응용 프로그램
- 11. .war 파일의 web.xml이있는 스프링 부트 응용 프로그램
- 12. 스프링 부트 H2 데이터베이스 응용 프로그램
- 13. 스프링 부트 응용 프로그램 테스트 - 메모리 문제
- 14. RabbitMQ 스프링 부트 응용 프로그램 예외 처리
- 15. 스프링 부트 응용 프로그램 시작 실패
- 16. 스프링 부트 - 임베디드 데이터베이스에 트랜잭션을 직접 저장
- 17. 스프링 부트 애플리케이션 jar 파일 임베디드 tomcat
- 18. 임베디드 WLP를 사용하여 스프링 부트 응용 프로그램을 실행하십시오.
- 19. 스프링 부트 응용 프로그램에서 임베디드 tomcat에 사용자를 추가하는 방법은 무엇입니까?
- 20. 임베디드 데이터베이스가있는 스프링 부트 응용 프로그램이 충돌 함
- 21. 임베디드 응용 프로그램 서버는
- 22. 임베디드 응용 프로그램 서버
- 23. 임베디드 응용 프로그램
- 24. 독립형 스프링 부트 응용 프로그램 용 스프링 액추에이터
- 25. 스프링 배치가 실행되지 않는 스프링 부트 응용 프로그램
- 26. 임베디드 Tomcat을 시작할 수 없습니다 - 스프링 부트
- 27. 스프링 부트, 임베디드 tomcat을 초기화하지 못했습니다.
- 28. 스프링 부트 임베디드 Tomcat을 시작할 수 없습니다.
- 29. 비 - 임베디드 컨테이너를위한 스프링 - 부트 가능 압축
- 30. 스프링 부트 테스트에서 임베디드 Elasticsearch 해제
정확히 어디에서 앱을 실행해야합니까? 클라우드 서비스는 jar 파일을 실행할 수 있으므로 임베디드 tomcat에 대해 걱정할 필요가 없습니다. – MaxG