在IDEA中搭建Spring-WebFlux入门

Spring-Webflux是反应式编程,性能提升的同时,对程序员的要求也很多。
如果帮到你,记得点个赞~

第一步

新建项目,JDK需要1.8+。

第二步

选择依赖。选择Spring Reactive Web和Lombok

第三步

开始写逻辑,WebFlux实现有两种方式。
1、注解;2、函数
Spring MVC注解的方式:

/**
 * 首页访问,用于压测
 *
 * @return
 */
@RequestMapping("/")
public void index() {
    System.out.println(Thread.currentThread().getName());
    Mono.just("成功").subscribeOn(Schedulers.parallel()).subscribe(s -> {
        try {
            Thread.sleep(3000);
        } catch (Exception e) {
        }
        System.out.println(System.currentTimeMillis() + "/" + Thread.currentThread().getName());
    });
}
/**
 * 返回一条
 * @return
 */
@RequestMapping("/findStudent")
public Mono<Student> findStudent() {
    Student student = new Student();
    student.setId(1);
    student.setName("张三");
    return Mono.just(student);
}

/**
 * 返回多条
 * @return
 */
@RequestMapping("/findList")
public Flux<Student> findList() {
    Student student = new Student();
    student.setId(1);
    student.setName("张三");

    Student student2 = new Student();
    student2.setId(1);
    student2.setName("张三");
    return Flux.just(student,student2);
}

函数式编程的方式:
第一步
首先定义一个处理处理请求的Handler

/**
 * 定义一个处理器,处理用户请求
 */
@Component
public class TestHandler {
    public Mono<ServerResponse> getTest(ServerRequest request) {
        Optional<String> name = request.queryParam("name");
        System.out.println("姓名:" + name);
        return ServerResponse.ok().contentType(MediaType.TEXT_HTML).bodyValue("hello world");
    }
}

第二步
定义一个接收请求的Controller

@Configuration
public class ControllerDemo2 {
    @Bean
    public RouterFunction<ServerResponse> demoRouter(TestHandler testHandler) {
        return RouterFunctions.route().GET("/controller2", testHandler::getTest).build();
    }
}

基本使用就是这些,下一篇文章我会介绍WebFlux中使用Mongodb + Mysql的集成方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁蛋的铁,铁蛋的蛋

留一杯咖啡钱给作者吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值