IDEA 搭建一个spring boot2 webflux项目

32 篇文章 0 订阅

        最近考完PMP研究了点新东西,前面写的spring boot1.5.2+JPA的项目会接着写并且升级到springboot2;还有一个spring boot1+mybatis的项目,应该也会陆续的写进来并升级。

        这次写的spring boot2 webflux+mongodb。也在逐渐掌握中。最近又发布了JDK11,要学的东西真的挺多的。同时也转战了IDEA,刚开始上手挺费劲的,不过用习惯了以后再回归eclipse操作顿卡,真是感觉蓝瘦香菇。老婆也说:不能总待在eclipse的舒适区吧,所以决心用下去。也该跳出来见见世面了。哈哈。

1,简单介绍一点springboot2 webflux

网上一搜有一堆介绍,我就不粘贴了。说说我的简单理解:说的不对的请指教~

        webflux和webmvc是spring5支持的两种访问方式。MVC是基于之前的方式,进一个请求,处理后返回,属于阻塞的,之前的容器是tomcat;而webflux是基于servlet3.1,可以进行异步非阻塞的访问。大大增加并发量,使在同样的硬件基础上,能比MVC方式允许更大的并发量。默认容器为netty。webflux和webmvc之间的区别从maven依赖就可以看得出来。

webfllux基于JDK8中的lambda表达式+JDK中的reactive stream(Flow API)响应式流,两种结合而来。

lambda表达式之前也简单写过,附传送门:lambda表达式

reactive stream 虽然也有stream,但是他跟lambda没有关系,他是JDK9中一套基于发布者和订阅者的’一种模式。具体的等我研究透彻回来开个单独的来写。

webflux架构有两种代码风格,一种是通过路由来转发请求,写起来跟MVC风格可以说完全不一样了;但是spring也将他融入了原来mvc开发的方式,使我们用起来会比较顺手。

还有一个问题就是目前的webflux暂时不支持mysql这类的关系型数据库,所以先试着用nosql数据库mongodb。

下面开始准备环境。JDK安装,maven安装等不赘述了。

2,下载安装IDEA

    这个不多说了,附上下载链接:

    社区版:https://download.jetbrains.8686c.com/idea/ideaIC-2018.2.4.exe

    收费版:https://download.jetbrains.8686c.com/idea/ideaIU-2018.2.4.exe

    我用的社区版本,下面就以社区版本为例了。

3,配置IDEA

    下载安装之后应该会到这个界面:

这里我们分几步:

    1,配置JDK

    右下角,Configure——>Project Defaults——>Project Structure;或者直接使用快捷键:Ctrl+Shift+Alt+S

点击加号,选择JDK,选择JDK安装目录即可。

    2,配置maven

右下角,Configure——>Settings——>右侧找到build,Execution,Deployment——>Maven

按照这个配置即可。选择maven路径;然后配置你的settings.xml文件;

    3,配置lombok插件

这个之前我写了篇文章,里面有介绍。不多说,附上传送门。lombok的安装与使用

    4,配置springboot插件

右下角,Configure——>Plugins,社区版本搜索Spring Assistant,收费版好像是搜索spring boot,我没用有待求证。

点击Install,安装。

先说这几个,后面用到git,或者其他插件配置,再说。

 

全部安装完重启之后,开始构建我们的springboot2项目。

4,创建项目

先说环境:

    JDK10(11刚发布,而且这是一个长期版本,所以之后可能会考虑换到JDK11)

    maven3.5.0

    springboot 版本2.0.5

过程比较简单,多为截图跟着走就行了。

这里选择和你之前选的JDK版本改成 一致。

选择你要使用的依赖。在下面选择路径,完成即可。等待自动构建就行了。

看一下pom.xml

        <!-- 支持stream的mongodb 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
        </dependency>

        <!--基于stream + fluxAPI 的 webflux依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>

mongodb依赖带有-reactive

原来的web依赖也换成了webflux依赖

这个时候,一个项目已经生成完毕。我们直接写一个controller测试一下通不通即可。

代码:

@RestController
@RequestMapping("/user")
public class UserController {

    @GetMapping("/test")
    public Mono<String> test(){
        return Mono.just("test wm");
    }
}

启动项目:

这里发现,springboot2的默认容器已经有tomcat变成了支持非阻塞的netty。

结果:

 

这样我们一个springboot2的webflux+mongodb项目就搭建完成了。可以看到这里使用的还是MVC开发风格,只不过Mono没见过,之后会介绍有关内容。webflux的路由后面的文章会有介绍。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值