프로파일이 있는 임베디드 Tomcat의 스프링 부트 활성화/비활성화
Spring Boot 어플리케이션을 작성하고 있습니다.@Configuration
어떤 클래스냐에 따라@Profile
로 설정되어 있다.application.properties
파일.
이러한 컨피규레이션클래스 중 하나는 REST 인터페이스를 사용하고 있기 때문에 다음과 같이 설명합니다.spring-boot-starter-web
의존관계로서.
그러면 내장된 Tomcat 인스턴스가 시작되며 문제 없습니다.
문제는 다른 프로파일에는 임베디드 서버가 필요하지 않다는 것입니다(예를 들어 REST 대신 JMS를 사용하여 수신 메시지를 처리합니다).
이 문제를 막을 방법은 없을까?@SpringBootApplication
REST Configuration 클래스에만 사용할 수 있습니까?예를 들어, 해당 클래스에 주석을 추가하여@EnableWebMVC
여기 저의 예가 있습니다.@Configuration
클래스:
기타:
@Profile({"REST"})
@Configuration
@EnableWebMvc
public class HttpConfiguration{
.
.
.
}
JMS:
@Profile({"JMS"})
@Configuration
@EnableJms
public class JMSConfiguration{
.
.
.
}
감사해요.
사용하다
@SpringBootApplication(exclude = {EmbeddedServletContainerAutoConfiguration.class,
WebMvcAutoConfiguration.class})
임베디드 서블릿 컨테이너에 대한 스프링 부트의 자동 구성을 제외합니다.또한 비 REST 케이스에 대해 다음 속성을 설정해야 Spring Boot이 다음 명령을 시작할 수 있습니다.WebApplicationContext
(서블릿 컨테이너가 필요):
spring.main.web-environment=false
그런 다음 REST 프로파일에 내장된 Tomcat을 활성화하려면EmbeddedServletContainerAutoConfiguration.class
(REST 프로파일이 로드될 때까지 자동 설정이 지연됩니다).
@Profile({"REST"})
@Configuration
@Import(EmbeddedServletContainerAutoConfiguration.class)
public class HttpConfiguration {
// ...
}
사용하고 있는 경우EmbeddedServletContainerCustomizer
s, Import도 필요합니다.EmbeddedServletContainerCustomizerBeanPostProcessorRegistrar.class
.
Spring Boot 2.0의 경우spring.main.web-application-type=none
적절한 프로파일에서 트릭을 실행합니다.
다중 문서를 사용하는 경우application.yml
Spring Boot 2.0을 사용하여 이 블록을 추가하고 치환합니다.no-web-profile-name
내장형 웹 서버가 동작하지 않는 프로파일로 설정합니다.
---
spring:
profiles: no-web-profile-name
main:
web-application-type: none
@hzpz와 @orid의 답변은 저를 올바른 방향으로 이끌었습니다.
추가할 필요가 있었습니다.
@SpringBootApplication(exclude = {EmbeddedServletContainerAutoConfiguration.class,
WebMvcAutoConfiguration.class})
및 설정:
spring.main.web-environment=false
내 안에서application.properties
휴식이 아닌 케이스에 대해 제출합니다.
언급URL : https://stackoverflow.com/questions/32078015/spring-boot-enable-disable-embedded-tomcat-with-profile
'programing' 카테고리의 다른 글
각도 js에서 사용되는 "변형" 함수는 무엇입니까? (0) | 2023.03.05 |
---|---|
물결 괄호 없는 화살표 기능 (0) | 2023.02.28 |
스프링 주석 @ConditionalOnMissingBean의 역할은 무엇입니까? (0) | 2023.02.28 |
org.json을 복제하려면 어떻게 해야 하나요?Java의 JSONObject? (0) | 2023.02.28 |
ES6/ES7 구문을 사용하여 jQuery UI를 가져오려면 어떻게 해야 합니까? (0) | 2023.02.28 |