前言

随着Spring Boot2.0正式发布,Spring WebFlux正式来到了Spring Boot大家族里面。由于Spring WebFlux可以通过更少的线程去实现更高的并发和使用更少的硬件资源去实现扩展,我对此很感兴趣。同时Angular6也发布了,也想试试自己Angular的功底,便基于Angular和Spring WebFlux做个一个简单礼品管理系统的demo。至于angular和spring boot的集成可以参考该博客Angular和Spring Boot一起做个项目

响应式编程

响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。个人通俗的理解为产生数据的行为放在一个数据流内,通过一些运算符将流中的数据进行适当的转化,最终获取该数据流中的数据并处理数据。我最早接触响应式编程是在学习Angular2的时候了解到rxjs,这是ReactiveXz在js上的实现版本,其java版本为rxjava。

学习建议

  1. 由于Spring WebFlux是基于Reactor库,因此建议先学习一下Reactor,了解响应式编程的概念,能区分Mono和Flux之间的区别。其官网链接为http://projectreactor.io
  2. 如果能有余力,可以考虑学一下RxJava2。
  3. 尽可能使用基于事件的编程思维,少写同步的代码。

对Spring WebFlux的看法

  1. 实际开发中如果Spring MVC已经能够满足需求,还是不要使用Spring WebFlux,除非你仅仅是在Controller层中将Service的返回接口包装成Mono或者Flux,
  2. 如果使用Spring WebFlux,尽量还是使用基于 Java 注解的方式,尤其是当请求参数比较复杂的时候,基于 Java 8 的 lambda 表达式的函数式编程模型的方式是真的不好用!!!

代码分享

代码已经放在github码云,希望大家能多多指点。

基于Angular和Spring WebFlux做个小Demo的更多相关文章

  1. [Unity3D]做个小Demo学习Input.touches

    [Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...

  2. jsoup爬虫简书首页数据做个小Demo

    代码地址如下:http://www.demodashi.com/demo/11643.html 昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固, ...

  3. pyqt5 做的小程序,可以用来UI做个小demo

    #!/usr/bin/python3# -*- coding: utf-8 -*- """ZetCode PyQt5 tutorial This program crea ...

  4. spring boot简单的小demo(适合于初学者)

    import com.example.demo2.com.example.dao.ShopDao; import com.example.demo2.com.example.entity.Shops; ...

  5. Spring Data Solr入门小Demo

    package com.offcn.pojo; import java.io.Serializable; import java.math.BigDecimal; import java.util.D ...

  6. 一个基于ES6+webpack的vue小demo

    上一篇文章<一个基于ES5的vue小demo>我们讲了如何用ES5,vue-router做一个小demo,接下来我们来把它变成基于ES6+webpack的demo. 一.环境搭建及代码转换 ...

  7. Win10 FaceAPI小demo开发问题汇总

    Win10 FaceAPI小demo开发问题汇总 最近使用微软牛津计划做一个小demo,使用FaceAPI做一个小应用,实现刷脸的功能.开发的过程中用到几个问题,具体如下: Stream 与IRand ...

  8. dubbo泛化调用 小demo

    前两天刚好有个同事来问是否用过 dubbo泛化 调用,不需要通过指定配置.第一次听到的时候,还是有点懵,但觉得有意思,可以学点东西. 立马百度了,找了demo,这篇比较容易上手(http://www. ...

  9. Angular和Spring Boot一起做个项目

    引言 最近由于公司人员调整,我不得不去转去做前端,被迫用三周的时间学习Angular,同时需要做一个简单的Web聊天室.对于前端不一点感冒的我而言,其实还算一个不小的挑战.在三周的过程中,我遇到很多的 ...

随机推荐

  1. SVN客户端安装与使用

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6623148.html  一:SVN客户端下载与安装 下载网址:https://tortoisesvn.net/ ...

  2. Linux~上部署.net MVC出现的问题与解决

    这几天一直在搞linux下面的.net mvc的部署工作,遇到了很多问题,还好有一些朋友的帮助,问题才得到了解决! 环境:Linux+Mono+Jexus 希望的结果:直接运行windows+vist ...

  3. Asp.Net SignalR Hub中的上下文对象

    Hub中的 Context 使用了集线器后,会发现对比持久连接类少了OnConnectioned这样的事件,事实上是有的.需要我们去override .这下似乎发现了什么问题,记得持久连接类中有con ...

  4. 技术分享:RxJS实战练习-经典游戏Breakout

    效果图 数据流分析 1.ticker$ 数据流 interval配合scheduler/animationFrame 作为游戏随时间变化的控制数据流 ticker$ = interval(this.T ...

  5. 【ASP.NET Core快速入门】(十二)JWT 设计解析及定制

    前言 上一节我们讲述的书如何使用jwt token,而且上一节的token是要加Authorization:bearer XXXXXXXXXXXX才能访问. 这一节我们来研究如何自定义类似jwt的to ...

  6. Docker系列01—容器的发展历程---Docker的生态圈

    本文收录在容器技术学习系列文章总目录 Docker 和容器技术的发展可谓是日新月异,本文试图以全局的视角来梳理一下 docker 目前的生态圈.既然是概览,所以不会涉及具体的技术细节. Docker ...

  7. c# Task 篇幅二

    上面一篇https://i.cnblogs.com/EditPosts.aspx?postid=10444773我们介绍了Task的启动,Task的一些方法以及应用,今天我们着重介绍一下Task其它概 ...

  8. 第27章 联合网关 - Identity Server 4 中文文档(v1.0.0)

    通用架构是所谓的联合网关.在此方法中,IdentityServer充当一个或多个外部身份提供商的网关. 该架构具有以下优点: 您的应用程序只需要了解一个令牌服务(网关),并且屏蔽了有关连接到外部提供程 ...

  9. 第7章 贡献 - Identity Server 4 中文文档(v1.0.0)

    我们对社区贡献非常开放,但您应该遵循一些指导原则,以便我们可以毫不费力地处理这个问题. 7.1 如何贡献? 最简单的方法是打开一个问题并开始讨论.然后我们可以决定是否以及如何实现功能或更改.如果您应提 ...

  10. Uncaught SyntaxError: Invalid shorthand property initializer报错

    出现这个错误一定是:把":"写成了"="号