/jushi

一个开源的spring webflux论坛

Primary LanguageJava

Project logo

巨石论坛


一个可以闲聊和讨论技术的论坛

📝 目录

🧐 介绍

巨石论坛:后端采用java微服务,webflux模式开发 前端采用vue开发的论坛

🏁 安装

1. 安装依赖环境

可以在 application.yml 中修改账号密码等配置

  • jdk11

  • redis5

  • nacos1.0.1

  • mongodb4.0.1

2.导入sql脚本(在主目录下的sql目录内)

3.拉取项目

4.导入依赖

5.启动项目

  1. jushi-auth-server

  2. jushi-gateway

  3. jushi-module-web

  4. jushi-module-admin

没有先后顺序

6. 启动前端

前端链接: https://github.com/guowenzhuang/jushi-web-vant

🔧 项目描述

目录结构

|-- jushi                                 
    |-- jushi-auth                     权限模块
    |   |-- jushi-auth-client            权限客户端
    |   |-- jushi-auth-common            权限公共模块
    |   |-- jushi-auth-server            权限服务端
    |-- jushi-gateway                  网关
    |-- jushi-module                   业务模块
    |   |-- jushi-module-admin           后台管理
    |   |-- jushi-module-api             业务公共模块
    |   |-- jushi-module-web             web后台
    |-- sql                            sql脚本

项目介绍

项目采用微服务的架构并结合流行的webflux模式开发

抛弃了原先的 controller service dao 分层开发 采用route handler dao分层开发 全部是基于函数式响应式的开发

数据库

本次项目采用mongodb作为主数据库 主要有以下几种原因

  1. mongodb支持 reactive(响应式)

  2. mongodb在4.0 版本后新增了事务 解决了不如关系型数据库的缺点

  3. mongodb在2.4版本后已经修复了数据丢包问题

🎈 技术栈

名称 介绍 链接
gateway spring cloud 基于webflux的路由 https://spring.io/projects/spring-cloud-gateway
nacos 服务注册和发现 & 配置中心 https://nacos.io/zh-cn/index.html
mongodb-reactive mongodb-reactive作为dao层框架 https://www.baeldung.com/spring-data-mongodb-reactive
data-redis 操作redis的框架 https://spring.io/projects/spring-data-redis
lombok 帮助快速生成开发的插件 https://www.projectlombok.org/
security 用户认证 https://spring.io/projects/spring-cloud-security
webflux 反应式编程 https://docs.spring.io/spring-framework/docs/5.0.0.BUILD-SNAPSHOT/spring-framework-reference/html/web-reactive.html

🎨 图例

5d3bcec6900e691254

5d3bcf06c852a74903

5d3bcf27881d517631

5d3bcf6127e3525838

5d3bcf98cc48743176

5d3bcfd1444e416146

🚀 TODO

  • admin 后台管理未开发
  • 搜索未集成es
  • 搜索中文分词 hutool DFA查找
  • 登录 注册 修改密码 新增验证码校验

✍️ 作者

🎉 致谢