programing

spring-boot-starter-web과 spring-boot-starter-weblux는 함께 작동하지 않습니까?

cafebook 2023. 7. 2. 20:57
반응형

spring-boot-starter-web과 spring-boot-starter-weblux는 함께 작동하지 않습니까?

내가 배우기 시작할 때spring-webflux저는 이 부품에 대해 질문이 있습니다.

저는 메이븐을 이용해 간단한 프로젝트를 만들었습니다.다음과 관련된 종속성을 추가했습니다.spring-boot-starter-web그리고.spring-boot-starter-webflux예:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

하지만 효과가 없습니다.제거할 때spring-boot-starter-web의존성, 그것은 잘 작동할 수 있습니다.

웹 환경에 대한 Spring Boot 참조 문서 섹션에서 설명한 바와 같이, 웹 및 웹 플럭스 스타터를 모두 추가하면 Spring MVC 웹 응용 프로그램이 구성됩니다.

기존의 많은 Spring Boot 웹 애플리케이션(MVC 사용)이 웹 플럭스 스타터를 사용하여WebClient스프링 MVC는 반응형 리턴 타입을 부분적으로 지원하므로 예상되는 사용 사례입니다.반응형 애플리케이션이 Spring MVC 비트를 사용할 가능성이 크지 않기 때문에 그 반대는 사실이 아닙니다.

따라서 웹 및 웹 플럭스 스타터를 모두 사용할 수 있지만 Spring MVC 응용 프로그램을 구성합니다.Spring Boot 애플리케이션은 항상 다음과 같은 기능을 사용하도록 강제할 수 있습니다.

SpringApplication.setWebApplicationType(WebApplicationType.REACTIVE)

그러나 반응형 웹 응용 프로그램에서 차단 기능을 쉽게 사용할 수 있으므로 종속성을 정리하는 것이 좋습니다.

저도 비슷한 문제가 있었습니다.spring-boot-starter-webflux그리고.spring-data-geode발생시키는

DEBUG [http-nio-8082-exec-2] org.sprin.web.servl.resou.ResourceHttpRequestHandler 454 handleRequest: Resource not found

응용 프로그램 유형을 변경하여 해결되었습니다.

@SpringBootApplication
public class Web {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(Web.class);
        app.setWebApplicationType(WebApplicationType.REACTIVE);
        SpringApplication.run(Web.class, args);
    }
}

반 전체가 이렇게 생겼습니다.

enter image description here

응용 프로그램 유형을 설정한 후에 그렇지 않으면 전화를 겁니다.SpringApplication정적인 방식으로, 저는 다음과 같이 이해합니다.

Web

언급URL : https://stackoverflow.com/questions/51377675/dont-spring-boot-starter-web-and-spring-boot-starter-webflux-work-together

반응형