از این بعد نام Spring reactive stack web framework را بیشتر بیشتر خواهید شنید. این stack جدید که برای توسعه برنامه های تحت وب در Spring 5 معرفی شده است و نسل بعدی توسعه برنامه های تحت وب در Spring Framework است که پس از Spring MVC و Spring Boot (Spring Servlet stack based web framework) که سال ها در بین توسعه دهندگان جاوا استفاده می شد آمده است و قابلیت تولید سیستم های reactive و non-blocking درون Spring Framework را با استفاده از پروژه Reactor خواهد داد.

برنامه های تولید شده با Spring WebFlux هم قابلیت اجرا درون Servlet container ها  مثل Tomcat, Jetty, Servlet 3.1 و هم قابلیت اجرا بر روی سرور هایی مانند Netty یا Undertow را دارد.

من اولین بار این مدل تولید برنامه تحت وب در دنیای جاوا رو با Play Framework تجربه کردم (حدود ۴ سال پیش) و سیستم های خوبی با Play Framework تولید کردیم ولی همیشه مشکل کمبود توسعه دهنده و پلاگین برای Play Framework را داشتیم ولی کاملا مشخص بود که أینده تولید برنامه تحت وب در دنیای جاوا از servlet container ها نمی گذرد و مدل پردازشی با event-loop بهمراه تعداد thread های کم آینده توسعه برنامه های تحت وب جاوا را رقم خواهد زد و قدرت JVM بصورت کامل نمایش داده خواهد شد.

سازگاری کامل Reactor با استاندارد Reactive Stream که در جاوا ۹ معرفی شده است آینده Spring WebFlux را تضمین خواهد کرد.

فعلا Spring 5 M5 عرضه شده و مستندات Spring WebFlux کامل نیست و مثال های کاملی برای آن وجود نداره ولی چیزی که واضح هستش اینه که مثل همیشه Backward compatibility وجود خواهد داشت. در زیر یک کنترلر که با Spring WebFlux پیاده سازی شده است را می بینیم:

@GetMapping("/persons")
Flux<Person> getPersons() {
    return this.repository.getPersons();
}