最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring-Web與Spring-WebFlux沖突問(wèn)題解決

 更新時(shí)間:2024年04月01日 10:49:48   作者:成為大佬先禿頭  
Spring WebFlux是一套全新的Reactive Web技術(shù)棧,實(shí)現(xiàn)完全非阻塞,支持Reactive Streams背壓等特性,這篇文章主要給大家介紹了關(guān)于Spring-Web與Spring-WebFlux沖突問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下

問(wèn)題發(fā)現(xiàn)

創(chuàng)捷了Spring-Web項(xiàng)目,然后在學(xué)習(xí)Spring-WebFlux的時(shí)候代碼編寫后請(qǐng)求解決報(bào)404,示例代碼如下:

@Component
public class MyHandler {
    public Mono<ServerResponse> handleRequest(ServerRequest request) {
        // 處理請(qǐng)求邏輯
        String name = request.queryParam("name").orElse("Anonymous");
        String message = "Hello, " + name + "!";

        // 構(gòu)建響應(yīng)
        return ServerResponse.ok().body(BodyInserters.fromValue(message));
    }

}
@Configuration
@EnableWebFlux
public class MyWebFluxConfig {
    @Bean
    public RouterFunction<ServerResponse> route(MyHandler handler) {
        return RouterFunctions.route()
                .GET("/hello", handler::handleRequest)
                .build();
    }
}

pom依賴文件

    <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>

啟動(dòng)成功后,請(qǐng)求如圖

然后進(jìn)行一系列的問(wèn)題排查

問(wèn)題解決

Spring MVC 和 Spring WebFlux 是兩個(gè)不同的框架,用于構(gòu)建 Web 應(yīng)用程序。由于這兩個(gè)框架之間的差異,建議一個(gè)項(xiàng)目只用一個(gè)框架。

請(qǐng)求404,先baidu,發(fā)現(xiàn)對(duì)這個(gè)問(wèn)題解決方案特別少,然后看網(wǎng)上別人的案例發(fā)現(xiàn)都有@EnableWebFlux注解,加上后啟動(dòng)一堆錯(cuò)誤來(lái)了。

一切的來(lái)源都是Spring MVC 和Spring WebFlux一起使用導(dǎo)致的,所以還是重新建一個(gè)項(xiàng)目再學(xué)習(xí)把。

問(wèn)題一:The bean ‘requestMappingHandlerMapping’, defined in class path resource [org/springframework/web/reactive/config/DelegatingWebFluxConfiguration.class],

完整錯(cuò)誤日志內(nèi)容:

The bean ‘requestMappingHandlerMapping’, defined in class path resource [org/springframework/web/reactive/config/DelegatingWebFluxConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class] and overriding is disabled.

這個(gè)問(wèn)題就是說(shuō)requestMappingHandlerMappingBean重復(fù)了,但是全局搜索找不到這個(gè)bean,應(yīng)該是默認(rèn)自帶的。

application.propertiesapplication.yml文件中加入配置:

spring.main.allow-bean-definition-overriding=true

當(dāng)您的應(yīng)用程序啟動(dòng)時(shí),現(xiàn)有的bean定義將被新的定義所覆蓋。

問(wèn)題二:The Java/XML config for Spring MVC and Spring WebFlux cannot both be enabled, e.g. via @EnableWebMvc and @EnableWebFlux, in the same application.

看網(wǎng)上案例都有加@EnableWebFlux注解,以為是沒加注解導(dǎo)致訪問(wèn)404,加上后報(bào)錯(cuò):

Caused by: java.lang.IllegalStateException: The Java/XML config for Spring MVC and Spring WebFlux cannot both be enabled, e.g. via @EnableWebMvc and @EnableWebFlux, in the same application.

找到@EnableWebMvc注解,刪除后,重啟即可(其實(shí)不加注解也是可以請(qǐng)求的)。

問(wèn)題三:請(qǐng)求404

將上面的問(wèn)題都解決后,請(qǐng)求發(fā)現(xiàn)還是報(bào)404,然后就是再pom依賴文件中,刪除spring-web依賴,重新編譯后重啟,發(fā)現(xiàn)依舊不行,最后發(fā)現(xiàn)SpringBoot可以知道應(yīng)用程序的Web應(yīng)用程序類型:

在配置文件(如application.propertiesapplication.yml)中,添加以下屬性:

spring.main.web-application-type = reactive

它有兩個(gè)可選值:

  • SERVLET:表示將應(yīng)用程序配置為使用傳統(tǒng)的Servlet API和阻塞I/O操作的Web堆棧。這是默認(rèn)值,適用于大多數(shù)傳統(tǒng)的Spring MVC應(yīng)用程序。

  • REACTIVE:表示將應(yīng)用程序配置為使用Reactive編程模型和非阻塞I/O操作的Web堆棧。這適用于使用Spring WebFlux構(gòu)建的響應(yīng)式應(yīng)用程序。

最后請(qǐng)求接口,如圖:

問(wèn)題解決。

總結(jié)

到此這篇關(guān)于Spring-Web與Spring-WebFlux沖突問(wèn)題解決的文章就介紹到這了,更多相關(guān)Spring-Web與Spring-WebFlux沖突內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中MultipartFile互轉(zhuǎn)File的方法

    java中MultipartFile互轉(zhuǎn)File的方法

    本文主要介紹了java中MultipartFile互轉(zhuǎn)File的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • java 創(chuàng)建線程的幾種方式

    java 創(chuàng)建線程的幾種方式

    本文主要介紹了java中創(chuàng)建線程的幾種方式。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • Java List的remove()方法陷阱以及性能優(yōu)化

    Java List的remove()方法陷阱以及性能優(yōu)化

    Java List在進(jìn)行remove()方法是通常容易踩坑,本文就詳細(xì)的介紹一下陷阱以及性能優(yōu)化,感興趣的可以了解一下
    2021-10-10
  • springboot Validated失效的問(wèn)題及解決思路

    springboot Validated失效的問(wèn)題及解決思路

    文章主要介紹了Java Bean Validation(JSR 303/JSR 349)和Hibernate Validator的基本用法,包括常用注解的使用、@Valid和@Validated注解的區(qū)別、如何自定義校驗(yàn)注解以及如何在Spring Boot中使用這些校驗(yàn)機(jī)制
    2026-01-01
  • 使用HandlerMethodArgumentResolver用于統(tǒng)一獲取當(dāng)前登錄用戶

    使用HandlerMethodArgumentResolver用于統(tǒng)一獲取當(dāng)前登錄用戶

    這篇文章主要介紹了使用HandlerMethodArgumentResolver用于統(tǒng)一獲取當(dāng)前登錄用戶實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 解決Intellij IDEA 使用Spring-boot-devTools無(wú)效的問(wèn)題

    解決Intellij IDEA 使用Spring-boot-devTools無(wú)效的問(wèn)題

    下面小編就為大家?guī)?lái)一篇解決Intellij IDEA 使用Spring-boot-devTools無(wú)效的問(wèn)題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Java可重入鎖reentrantLock解析

    Java可重入鎖reentrantLock解析

    這篇文章主要介紹了Java可重入鎖reentrantLock解析,reentrantLock跟synchronized代碼結(jié)構(gòu)差不多,只是多了一個(gè)lock和unlock的過(guò)程,需要的朋友可以參考下
    2023-12-12
  • Java高級(jí)應(yīng)用之斗地主游戲

    Java高級(jí)應(yīng)用之斗地主游戲

    這篇文章主要為大家詳細(xì)介紹了Java高級(jí)應(yīng)用之斗地主游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 使用IDEA搭建SSM框架的詳細(xì)教程(spring + springMVC +MyBatis)

    使用IDEA搭建SSM框架的詳細(xì)教程(spring + springMVC +MyBatis)

    這篇文章主要介紹了使用IDEA搭建SSM框架的詳細(xì)教程 spring + springMVC +MyBatis,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 掌握SpringMVC中@InitBinder的實(shí)際應(yīng)用

    掌握SpringMVC中@InitBinder的實(shí)際應(yīng)用

    這篇文章主要介紹了掌握SpringMVC中@InitBinder的實(shí)際應(yīng)用,@InitBinder是Spring MVC框架中的一個(gè)注解,用于自定義數(shù)據(jù)綁定的方法,通過(guò)在控制器中使用@InitBinder注解,可以將特定的數(shù)據(jù)綁定邏輯應(yīng)用于請(qǐng)求參數(shù)的處理過(guò)程中,需要的朋友可以參考下
    2023-10-10

最新評(píng)論

福鼎市| 精河县| 宝应县| 深州市| 阳山县| 德安县| 阳城县| 南溪县| 双牌县| 中西区| 布拖县| 葫芦岛市| 松滋市| 沅陵县| 印江| 巨鹿县| 新泰市| 鸡泽县| 北宁市| 辉县市| 蒲城县| 洪泽县| 天等县| 丽江市| 拜城县| 玉环县| 常德市| 琼海市| 博罗县| 田阳县| 方正县| 武定县| 龙州县| 思茅市| 咸阳市| 昌黎县| 黄平县| 雅江县| 长岛县| 土默特左旗| 安新县|