Spring Boot WebFlux 入门之 Hello World

JAVA herman 2184浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

WebFlux 在国外使用的已经非常的多了,在国内用的人还不算多,这和大多数公司所采用的技术有关。随着 java 的发展,我认为函数式编程、响应式编程,像 WebFlux 这种异步的、非阻塞的、事件驱动的服务框架会逐渐流行起来。所以我就开始研究并学习关于 WebFlux 这个框架用法,本文是 WebFlux 系列教程的第一章,欢迎大家关注!

webflux

关于 WebFlux 是什么,我就不介绍了,有兴趣的可以去看 Spring 的官网,或者在我的微信公众号里搜相关的视频。另外我在百度百家里也发了一篇文章来介绍它,这里就直接开始撸代码。

下面我们先新建一个 webflux-helloworld 工程。maven 的 pom.xml 配置如下:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

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

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

这里的 spring-webflow 我使用的是 2.5.0.RELEASE 的版本。

然后是 WebFluxApplication.java 类,和其他 SpringBoot 启动类一样,代码如下:

@SpringBootApplication
public class WebFluxApplication {
    public static void main(String[] args) {
        SpringApplication.run(WebFluxApplication.class, args);
    }
}

再接着,我们新建 WebFlux 的 Router 类,类似 SpringMVC 中的 Controller 。代码如下:

@Configuration
public class HelloWebFlux {
    // 业余草:www.xttblog.com
    @Bean
    public RouterFunction<ServerResponse> helloXttblog(XttblogHandler handler) {
        return RouterFunctions
                .route(RequestPredicates.GET("/hello")
                                .and(RequestPredicates.accept(MediaType.TEXT_PLAIN)),
                        handler::helloXttblog);
    }
}

接着创建 Handler 类。XttblogHandler.java 代码如下:

@Component
public class XttblogHandler {
    public Mono<ServerResponse> helloXttblog(ServerRequest request) {
        return ServerResponse.ok().contentType(MediaType.TEXT_PLAIN)
                .body(BodyInserters.fromObject("Hello, www.xttblog.com !"));

    }
}

最后运行启动 WebFluxApplication 类。我们在浏览器里输入 http://localhost:8080/hello,即可看到如下的内容:

webflux 案例

WebFlux 的端口默认是 8080,在启动的日志中就可以看到。

这里其实有一个问题,我们的 fromObject 方法传递的是一个英文的字符串,如果是一个带有中文的字符串,浏览器就会出现乱码,这时我们该怎么解决呢?做法很简单,我们下章再见!

源码已分享到我的微信公众号,扫描下方二维码,关注“业余草”回复:“webflux“关键字即可免费下载!

参考资料

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » Spring Boot WebFlux 入门之 Hello World