All Projects → G-little → Priest

G-little / Priest

Licence: apache-2.0
dubbo mybatis springboot base soa rest api framework with customer code generator

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Priest

Zheng
基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案。
Stars: ✭ 16,163 (+10001.88%)
Mutual labels:  microservices, dubbo, mybatis, spring, springmvc, mybatis-generator
Perfect Ssm
🍇更完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统(RESTful API+redis)
Stars: ✭ 606 (+278.75%)
Mutual labels:  dubbo, mybatis, spring, springboot, springmvc
Javaall
这是一个Java开发宝典,所有的Java技术都在这里,用心学习,努力提升!
Stars: ✭ 67 (-58.12%)
Mutual labels:  dubbo, mybatis, spring, springboot, springmvc
Ssm Demo
🍌Spring+SpringMVC+Mybatis+easyUI实现简单的后台管理系统
Stars: ✭ 1,639 (+924.38%)
Mutual labels:  dubbo, mybatis, spring, springboot, springmvc
Ibase4j
Spring,SpringBoot 2.0,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis缓存,Shiro权限管理,Spring-Session单点登录,Quartz分布式集群调度,Restful服务,QQ/微信登录,App token登录,微信/支付宝支付;日期转换、数据类型转换、序列化、汉字转拼音、身份证号码验证、数字转人民币、发送短信、发送邮件、加密解密、图片处理、excel导入导出、FTP/SFTP/fastDFS上传下载、二维码、XML读写、高精度计算、系统配置工具类等等。
Stars: ✭ 1,548 (+867.5%)
Mutual labels:  dubbo, mybatis, spring, springboot, springmvc
Ruoyi Vue
(RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 596 (+272.5%)
Mutual labels:  mybatis, spring, springboot, admin
Superman
Superman是什么:构建Java 高级开发技术的知识体系,从基础不断打怪升级成为超人之路(更新中.......)
Stars: ✭ 106 (-33.75%)
Mutual labels:  dubbo, mybatis, spring, springboot
Ruoyi Vue Fast
(RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 107 (-33.12%)
Mutual labels:  mybatis, spring, springboot, admin
Myth
Reliable messages resolve distributed transactions
Stars: ✭ 1,470 (+818.75%)
Mutual labels:  dubbo, soa, spring, springboot
Eshop Soa
EShop基于Dubbo实现SOA服务化拆分,并基于RocketMQ解决了分布式事务(新版SpringBootSOASkeleton)
Stars: ✭ 65 (-59.37%)
Mutual labels:  dubbo, mybatis, spring, mybatis-generator
Community
开源论坛、问答系统,现有功能提问、回复、通知、最新、最热、消除零回复功能。功能持续更新中…… 技术栈 Spring、Spring Boot、MyBatis、MySQL/H2、Bootstrap
Stars: ✭ 1,947 (+1116.88%)
Mutual labels:  mybatis, spring, springboot, mybatis-generator
Skill6 Website Backend
java进阶开发,高级版web项目。基于dubbo实现分布式微服务架构,基于spring boot、spring mvc、mybatis、docker、ELK、redis、vue.js、node.js等技术实现的技术分享交流网站。网站名称:技术流,英文名:skill6。主要功能有:登录注册、单点登录、restful设计、文章及评论、代码及资源下载、主题讨论等。持续更新中...
Stars: ✭ 140 (-12.5%)
Mutual labels:  dubbo, mybatis, spring, springboot
Jeecg Boot
「企业级低代码平台」前后端分离架构SpringBoot 2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
Stars: ✭ 26,432 (+16420%)
Mutual labels:  mybatis, spring, springboot, admin
Lamp Cloud
lamp-cloud 基于Jdk11 + SpringCloud + SpringBoot的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
Stars: ✭ 4,125 (+2478.13%)
Mutual labels:  mybatis, spring, springboot, admin
Supermarket
设计精良的网上商城系统,包括前端、后端、数据库、负载均衡、数据库缓存、分库分表、读写分离、全文检索、消息队列等,使用SpringCloud框架,基于Java开发。该项目可部署到服务器上,不断完善中……
Stars: ✭ 1,278 (+698.75%)
Mutual labels:  mybatis, spring, springboot, springmvc
Jeeplatform
一款企业信息化开发基础平台,拟集成OA(办公自动化)、CMS(内容管理系统)等企业系统的通用业务功能 JeePlatform项目是一款以SpringBoot为核心框架,集ORM框架Mybatis,Web层框架SpringMVC和多种开源组件框架而成的一款通用基础平台,代码已经捐赠给开源中国社区
Stars: ✭ 1,285 (+703.13%)
Mutual labels:  dubbo, mybatis, springboot, springmvc
Blog
每周一篇,内容精简,不咸不淡,期盼探讨。微信公众号:芋道源码【纯源码分享公众号】
Stars: ✭ 2,327 (+1354.38%)
Mutual labels:  dubbo, mybatis, spring, springmvc
Java-CS-Record
记录准备春招实习过程中,学习与复习的知识(模块化整理,非面试题速成)。注:暂停更新,后续请移步博客
Stars: ✭ 73 (-54.37%)
Mutual labels:  springboot, mybatis, springmvc, dubbo
Javacore
Java程序员所需要掌握的核心知识: 集合框架&JVM机制&多线程与并发框架&网络协议&Spring&Dubbo&MySQL&微服务等;希望胖友小手一抖,右上角来个 Star,感恩 1024
Stars: ✭ 73 (-54.37%)
Mutual labels:  dubbo, spring, springboot, springmvc
Spring Boot Vue Bank
我,请始皇[打钱]是一个前后端分离的工具人系统,项目采用 SpringBoot+Go+Vue 开发,项目加入常见的企业级应用所涉及到的技术点,例如 Redis、RabbitMQ 等(主要是多用用工具多踩踩坑)。
Stars: ✭ 157 (-1.87%)
Mutual labels:  mybatis, spring, springboot, mybatis-generator

priest

dubbo mybatis springboot base soa rest api framework with customer code generator

交流QQ群:827488491 、798956810 🈵

前言

做过几个软件项目开发的人,可能或多或少都会发现,除去项目本身业务细节的区别,项目与项目之间还是有大量的功能重复, 如用户中心、接口调用权限认证、支付中心、账户钱包、聊天消息、管理后台的权限和菜单管理,几乎是每个项目会用到的基础模 块,本项目旨在以priest 项目 (priest 项目是一个以 incubator-dubbo - Spring Boot - Mybatis3 为基础的SOA开源开发框架) 为基础,将常用的通用非业务模块独立组件化,让新的业务项目研发如积木组装一样简单,让开发人员的全部放到业务细节的快速 实现上,让项目创业的人员配置简单化,成本最小化。

项目介绍

priest项目基于springboot+dubbo+mybatis的分布式敏捷开发框架,将 JSR303 hibernate-validate 验证体系完美融合dubbo服务框架。并以此为基础开发了maven-code-generator 插件,让研发人员从重复的增删改查工作中彻底解脱。

本项目为后续开源的所有项目的基石项目,后续计划陆续的开源项目将会有 用户中心 支付中心 敬请期待!

更新日志

2019-07-31

2019-06-08

  • 修改demo 模块dubbo 原生JSR303验证
  • 用户账户模块开发完毕
  • 支付宝,微信支付,集成完毕,查文档整理与测试

2019-04-17

  • 用户模块微信OAuth2登录支持

  • 支付模块用户账户支持

2019-04-09

  • 增加了用户模块

    1. 短信注册
    2. 用户信息补充
    3. 获取用户信息
    4. restApi 接口调用认证
    5. token 过期刷新
    6. 用户主动登出
  • 增加后台管理模块

    1. 权限管理
    2. 菜单管理
    3. 管理员管理
    4. 代码生成demo
  • 代码生成插件

    1. 后台管理jsp代码生成支持
    2. 代码生成 list attribute 标签支持

项目计划

模块 功能描述 完成度
priest-pay 支付相关文档整理  🔘
priest-pay 支付宝支付   ✔
priest-pay 微信支付  ✔️
priest-pay 用户账户  ✔️
dubbo-extend 改为dubbo 原生JSR303 参数验证  ✔️
priest-user token 生成  ✔️
priest-user restApi token 验证  ✔️
priest-generator 管理后台页面自动生成  ✔️

组织结构

├── dubbo
│   ├── assembly     --dubbo 打包相关配置
│   └── bin          --dubbo 启动脚本
├── dubbo-extend     --dubbo 扩展支持dubbo接口参数校验
├── plugin-test      --代码生成插件测试项目
├── priest-admin     --管理后台项目
│   ├── priest-admin-api     --管理后台api项目
│   ├── priest-admin-common  --管理后台公用模块
│   ├── priest-admin-dao     --管理后台数据库访问层
│   ├── priest-admin-http    --管理后台WEB界面
│   └── priest-admin-service --管理后台dubbo服务
├── priest-common            --priest 项目公用模块
├── priest-common-web        --priest 项目公用WEB模块
├── priest-demo              --priest 服务化样例项目
│   ├── priest-demo-api      --priest 服务化样例api项目
│   ├── priest-demo-dao      --priest 服务化样例dao项目
│   ├── priest-demo-http     --priest 服务化样例http项目
│   └── priest-demo-service  --priest 服务化样例dubbo服务项目
├── priest-generator         --priest 代码生成插件项目
├── priest-user              --用户项目
│   ├── priest-user-api      --用户api项目
│   ├── priest-user-dao		 --用户数据库访问层
│   ├── priest-user-http     --用户WEB接口
│   ├── priest-user-service  --用户dubbo服务
│   └── priest-user-token    --用户token生成模块
└── wiki_images              --wiki 引用图片
  

Getting Started


项目依赖

  1. mysql 数据库
  2. zookeeper 注册服务
  3. maven
  4. jdk 1.8+

项目编译

  1. 进入项目根目录

  2. 打开项目 priest-demo/priest-demo-dao/src/main/resources/demo.sql 建立创建测试数据库及表

  3. 修改 priest-demo/priest-demo-dao/pom.xml develop profile 关于jdbc的配置见下图

  4. 修改 根目录pom.xml develop profile 关于zookeeper配置见下图

  5. 进入项目根目录

  6. mvn clean install -Pdevelop

项目运行

  1. dubbo service 启动

运行 priest-demo/priest-demo-service/src/test/java/com/little/g/demo/TestDubbo.java main

  1. http 启动

    • 进入priest-demo/priest-demo-http 项目目录
    • 执行 mvn spring-boot:run ,观察控制台日志输出,出现如下日志,便是启动成功了。

  2. 接口访问测试

curl http://127.0.0.1:8888/user/test

开发流程

数据库建表

本例以order表为例子建表语句如下:

	
CREATE TABLE `order` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `uid` int(11) DEFAULT NULL COMMENT '用户ID',
  `money` bigint(15) DEFAULT NULL COMMENT '金额',
  `create_time` bigint(15) DEFAULT NULL COMMENT '创建时间',
  `status` tinyint(4) DEFAULT NULL COMMENT '状态',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
	

dao 生成

  1. 打开priest-demo/priest-demo-dao/src/test/resources/generatorConfig.xml追加如下配置
<table tableName="order" delimitIdentifiers="true" >
            <generatedKey column="id"  sqlStatement="JDBC" />
</table>     
  1. 调用priest-demo-dao的 mybatis-generator插件的 mybatis-generator:generate 任务,执行结果如下:

  2. 关于mybatis-generator的详细配置和文档可参见 MyBatis Generator

api 生成

  1. 拷贝 com.little.g.demo.model.Order 至 priest-demo-api 项目的 com.little.g.demo.api.dto 重命名为 OrderDTO
  2. 打开priest-demo/priest-demo-api/src/main/conf/GenerateConfig.xml 追加如下配置
<generateFile packagePath="/com/little/g/demo/api" templateName="Service.tpl" fileName="OrderService.java">
        <property name="entityName" value="Order" />
</generateFile>

  1. 调用priest-demo-api的 generator插件的 generator:generate 任务,执行结果如下:

  2. 关于generator 插件的详细配置和文档可参见

service 生成

  1. 打开priest-demo/priest-demo-service/src/main/conf/GenerateConfig.xml 追加如下配置
<generateFile packagePath="/com/little/g/demo/service" templateName="ServiceImpl.tpl" fileName="OrderServiceImpl.java">
        <property name="entityName" value="Order" />
</generateFile>

  1. 调用priest-demo-service的 generator插件的 generator:generate 任务,执行结果如下:

  2. priest-demo-service dubbo-config.xml 追加dubbo service 接口暴露

    <dubbo:service interface="com.little.g.demo.api.OrderService" ref="orderService"/>

  3. 关于generator 插件的详细配置和文档可参见 priest generator

http 生成

  1. 打开priest-demo/priest-demo-http/src/main/conf/GenerateConfig.xml 追加如下配置
<generateFile packagePath="/com/little/g/demo/web" templateName="Controller.tpl" fileName="OrderController.java">
        <property name="entityName" value="Order" />
</generateFile>

  1. 调用priest-demo-http的 generator插件的 generator:generate 任务,执行结果如下:

  2. priest-demo-http dubbo-consume.xml 追加dubbo service 引用

    <dubbo:reference id="orderService" interface="com.little.g.demo.api.OrderService" />

  3. 关于generator 插件的详细配置和文档可参见 priest generator

管理后台代码生成

管理后台的dao、api和service 的生成与restApi的生成逻辑本质没有太大区别,只是在接口原有逻辑的基础上增加了分页逻辑,对于既有接口逻辑又有后台管理的模块,可以采用管理后台的 api、service模板 进行生成,下面只单独列出 admin 管理页面的代码生成配置:

  1. 打开priest-admin/priest-admin-http/src/main/conf/GenerateConfig.xml 追加如下配置

注意 :默认的web文件生成路径位于 WEB-INF/jsp+${webPath} 若要修改web文件生成路径,直接修改插件的webSource配置


<!-- Controller 生成配置 -->
<generateFile packagePath="/com/little/g/admin/web/controllers/test" templateName="Controller.tpl" fileName="BookController.java">
        <property name="packageName" value="com.little.g.admin.web.controllers.test" />
        <property name="basePackage" value="com.little.g.admin" />
        <property name="entityName" value="Book" />
        <property name="module" value="BOOK" />
        <property name="uri" value="/book" />
    </generateFile>
    
<!-- list.jsp 生成配置 -->
<generateFile webPath="/book" templateName="list.tpl" fileName="book-list.jsp">
        <property name="uri" value="/book" />
        <property name="module" value="图书" />
        <list name="attributes">
            <attribute name="name" required="true" comment="书名" />
            <attribute name="price" required="false" comment="价格" />
            <attribute name="author" required="false" comment="作者" />
            <attribute name="publisher" required="false" comment="出版商" />
        </list>
    </generateFile>

<!-- edit.jsp 生成配置 -->
<generateFile webPath="/book" templateName="edit.tpl" fileName="book-edit.jsp">
        <property name="uri" value="/book" />
        <property name="paramName" value="book" />
        <property name="module" value="图书" />
        <list name="attributes">
            <attribute name="name" required="true" comment="书名" />
            <attribute name="price" required="false" comment="价格" />
            <attribute name="author" required="false" comment="作者" />
            <attribute name="publisher" required="false" comment="出版商" />
        </list>
    </generateFile>
  1. 调用priest-admin-http的 generator插件的 generator:generate 任务,执行结果如下:

  2. priest-admin-http dubbo-consume.xml 追加dubbo service 引用

    <dubbo:reference id="orderService" interface="com.little.g.demo.api.BookService" />

  3. 访问admin项目增加菜单

  1. admin 生成界面效果截图

列表页:

修改页:

  1. 关于generator 插件的详细配置和文档可参见 priest generator

批量生成脚本

您也可以在配置完成后,直接执行批量生成脚本,完成上述所有步骤 脚本位于 priest-demo 根目录

	sh	code_generate.sh
	

最后项目重新编译运行,新开发的接口就可以测试了

支持

打赏码

打赏码

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].