스프링부트 전쟁 문제
9981 단어 SpringBoot
스프링부트 전쟁 문제
SpringBoot Maven 관련 소개 참조: 공식 소개 및 사례 문서https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/maven-plugin/usage.html
SpringBoot은 기본적으로jar 방식으로 패키지를 하고jar 방식으로 서비스를 시작합니다.Spring Boot에 여러 서버가 내장되어 있으므로 이렇게 시작할 수 있습니다. SpringBoot 1.5.14 버전에서 지원되는 내장 서버는 다음과 같습니다.
Name
Servlet Version
Java Version
Tomcat 8
3.1
Java 7+
Tomcat 7
3.0
Java 6+
Jetty 9.3
3.1
Java 8+
Jetty 9.2
3.1
Java 7+
Jetty 8
3.0
Java 6+
Undertow 1.3
3.1
Java 7+
많은 장면에서 외부 서버 War 패키지를 통해 실행해야 한다.SpringBoot을 War 가방으로 만들면 자주 구덩이에 부딪힌다. 예를 들어 War 가방이 성공하지 못하고, War 가방을 서버에 던져 도망가지 못하는 등 문제가 있다.
1. POM 구성
spring-boot-starter-parent 의존을 추가합니다. 이 의존은 POM 파일일 뿐입니다.
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>${boot.starter.version}version>
<type>pomtype>
dependency>
상속
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.5.7.RELEASEversion>
<relativePath/>
parent>
공식 문서에는 spring-boot-starter-parent POM에는 리패키지 목표를 결합하기 위한 구성이 포함되어 있습니다.If you are not using the parent POM you will need to declare this configuration yourself.
즉, 프로젝트에서spring-boot-starter-parent를 사용하면 POM 파일에 패키지와 관련된 MAVEN 플러그인을 설정해 놓았습니다. 그렇지 않으면pom 파일에 플러그인을 표시해야 합니다. 다음과 같이 설정할 수 있습니다.
team.seagull.bookbase.service.ServiceApplication
...
...
org.springframework.boot
spring-boot-maven-plugin
repackage
${start-class}
...
그 중에서 start-class 자리 표시자는 프로그램이 시작하는 입구, 즉 SpringBoot에서main 방법을 정의하는 시작 클래스를 가리키는 데 사용됩니다.spring-boot-starter-parent의 자리 차지 문자도 ${start-class}입니다. 자리 차지 문자에 값을 표시하기 위해서는properties에 현재 시작 클래스를 표시해야 합니다. 예를 들어:
<properties>
<start-class>com.test.service.ServiceApplicationstart-class>
properties>
프로젝트에 여러 개의 모듈이 있으면 모든 모듈에서 패키지 방식을 설명해야 합니다. 하위 모듈은jar로 성명하고, 메인 모듈은war로 성명합니다. 패키지 방식을 jar로 설정하면pom에 다음과 같은 설정을 추가해야 합니다.
<packaging>jarpackaging>
부팅 클래스가 있는 모듈이라면 시스템 부팅 입구로서 패키지 방식을war로 바꿔야 합니다.
2. 의존 배제
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-tomcatartifactId>
<optional>trueoptional>
dependency>
spring-boot-devtools
dependency must be set as optional or with the provided scope. <dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-devtoolsartifactId>
<version>1.5.7.RELEASEversion>
<optional>trueoptional>
dependency>
3. Servlet 초기화 리소스 지정
SpringBoot에 웹이 없습니다.xml의 설정은 SpringBoot Servlet Initializer를 통해 이루어지며 용기를 시작할 때 관련 설정을 불러오는 주요 역할을 합니다.용기가 이 시작 클래스를 식별하기 위해서는 SpringBootServlet Initializer를 계승하고 configure 방법을 다시 써야 합니다
@SpringBootApplication(scanBasePackages = {"com.example.testwar"})
public class DeployApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DeployApplication.class, args);
}
/**
* web war tomcat
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DeployApplication.class);
}
}
4.other
Could not register MBean for endpoint 오류가 발생하여 서비스가 시작되지 않습니다. 프로필에서 Spring을 할 수 있습니다.jmx 닫기,
spring:
jmx:
enabled: false
보고된 예외:
o.s.b.a.e.jmx.EndpointMBeanExporter : Could not register MBean for endpoint [requestMappingEndpoint]
org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [org.springframework.boot.actuate.endpoint.jmx.AuditEventsJmxEndpoint@9a90bd3] with key 'auditEventsEndpoint'; nested exception is javax.management.InstanceAlreadyExistsException: bookClient:type=Endpoint,name=auditEventsEndpoint
at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:628) ~[spring-context-4.3.11.RELEASE.jar:4.3.11.RELEASE]
at org.springframework.boot.actuate.endpoint.jmx.EndpointMBeanExporter.registerJmxEndpoints(EndpointMBeanExporter.java:174) [spring-boot-actuator-1.5.7.RELEASE.jar:1.5.7.RELEASE]
at
......
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.