针对参加工作以来遇到的业务问题,搭建一套自认为较独立的业务模块,命名为PAP 快速开发框架。
技术栈: 技术栈为 Spring Boot 2.x 配套 Spring Cloud、 Mybatis、 Redis 、RabbitMQ、Activiti
基础模块:
1、PAP-POM
1、定义一个Maven项目,packaging设定为pom,用来约定依赖组件的版本号,保证所有 PAP 项目,所依赖的外部组件的版本号保持相同,防止不必要的组件间调用异常。
2、由于目前的Maven项目中,parent 父节点只能有一个,为了防止 sprint-boot 项目尝试定义多个 parent 节点,参照 spring boot 多个parent 解决。
那么业务模块引用 PAP-POM 就可以采取如下方式
<!-- 自定义统一依赖版本的基础项目,其他的项目在引用依赖的时候直接继承该项目即可,这样使用的依赖版本就能保持一致性。 -->
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>com.pap</groupId>
<artifactId>pap-pom</artifactId>
<version>0.0.1-RELEASES</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、 PAP-OBJ PAP-BASE
1、一些 POJO 类、通用的 BASE基类、Util方法;
2、PAP-BASE 中,含有一些自定义的Mybatis Generator Plugin,用来方便的进行代码生成操作(PAP-CODE-GENERATOR)。
扩展mybatis-generator-plugin查看
mybatis-genarator 自定义插件
mybatis-generator 自定义注释
mybatis-generator 基类继承
3、 PAP-CODE-GENERATOR
1、此代码生成器分为两部分,一个是基于 Mybatis-generator-plugin 插件的代码生成器,一个是基于 freemarker 的代码生成器,需要修改 mybatis-generator.properties 文件的参数
1.1、修改数据源: classPath driverClass connectionURL userId password
1.2、修改文件路径: targetProject targetPackageBase 工作空间所属路径与package路径
1.3、表名: tableName domainObjectName alias 表名、映射的实体类名称、表的别名(防止多张表的同名列)
4、 PAP-CALCULATE
1、JAVA 的四则运算计算器,解决 Excel 的公式,自定义的四则运算公式
java 四则运算,并可完成 自定义函数 表达式 功能
JAVA 计算器 自定义公式 解决EXCEL计算公式问题
自定义基础模块: 自定义starter
1、 pap-bean-spring-boot-starter
1、分布式主键生成,使用 twitter 的 IDWorker 生成器;
2、spring自定义参数解析器,将 request.header 里面的用户数据进行解析成对象,方便controller使用;
2、pap-logback-operdb-spring-boot-starter
1、自定义操作日志, 将用户的操作记录异步持久化数据库中;
2、使用 Logback Interceptor, 将数据按需异步持久化,同时扩展Logback 默认的4个字段为 32个,方便参数处理(源码Gitee);
3、pap-sequence-starter
1、ERP 项目中,会有大量的 流水号生成的功能,将此处的功能进行抽离;
2、支持 DB(乐观锁) 或者 Redis(原子性incr) 两种方式,按需引入(详见ReadME.md 文件);
业务基础组件:
1、PAP-ACTIVITIY
1、工作流,详见ReadME.md
流程在线可视化定义、初始化任务、认领任务、我的申请、我的代办、批注历史、任务审批、审批拒绝;
2、PAP-RabbitMQ
1、消息中间件,注意此处可以通过消息中间件解决分布式事务最终一致性的问题(AOP+守护进程);
2、事务消息
3、死信队列,邮件发送;
3、PAP-UPLOAD
1、统一文件上传: 注意修改临时上传文件,防止操作系统将临时文件夹清空造成业务中断;
4、PAP-SPRING-BOOT-SPI-DEMO
1、SPI扩展点: SPI解决Saas的定制化服务问题;
5、PAP-SPRING-BOOT-ADMIN
1、软件监控: 解决服务可用性监控;
业务组件:
1、PAP-GATEWAY、 PAP-UUA、 JWT
1、使用 spring-cloud-starter-gateway 定义网关,同时使用 spring-boot-starter-security 进行鉴权(使用 JWT 进行登录用户信息维护);
2、定义 PAP-UUA 工程,此工程封装 JWT 操作(登录获取Token、解析Token、刷新Token), gateway网关透传uua项目,不做权限验证;
3、具体的业务子系统需要进行鉴权操作,则通过 JWT 整合 security 进行登录用户鉴权处理。 Security认证管理器JWT.
PPP概念 PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。 返回 PPP链路建立过程 PPP协议中提供了一整套方案来解决链路建立、维护、
PPP中的pap和chap认证 实验拓扑: R1------------R2 实验说明:PPP中的认证方式有pap和chap两种,这两种认证既可以单独使用也可以结合使用。并且既可以进行单向认证也可以进行双向认证。 pap是通过验证远端的用户名和密码是否匹配来进行验证 chap 则是发送一个挑战包,然后远端通过自己的数据
This is the README file for ppp-2.4, a package which implements the Point-to-Point Protocol (PPP) to provide Internet connections over serial lines. Introduction. ************* The Point-to-Point P
PAP:密码认证协议 (PAP:Password Authentication Protocol) 密码认证协议(PAP),是 PPP 协议集中的一种链路控制协议,主要是通过使用 2 次握手提供一种对等结点的建立认证的简单方法,这是建立在初始链路确定的基础上的。 完成链路建立阶段之后,对等结点持续重复发送 ID/ 密码给验证者,直至认证得到响应或连接终止。 PAP 并不是一种强有效
公司最近花大价钱搞了个项目管理培训 从瑞典请的专业咨询公司讲的 针对项目经理,Line Manager及Team Leader的培训 总体感觉还不错 有助于提高leadership skills 稍后奉上听后感言
A project is a [temporary] sequence of unique, complex, and connected activities having one goal or purpose and that must be completed by a specific time, within budget, and according to specification
LCP:Link Control Protocol(PPP 链路控制协议) 链路控制协议(LCP),一个在点对点协议组(PPP) 中的协议,被用于自动地同意压缩格式选项,处理在分组大小上的不同限制,探测一个回授链路和其它公共配置不当错误和终止这个链接。其它提供的可选工具是它在链路中的对等者的身份和决定何时一个链路运行正常和何时它发生了故障。LCP是通用的和在广泛的多种环境中是方便的。 PAP (P
Project Name: Game – Legend of Swordsman Project Type: RPG GAME Project Objective: Practice In Game Programming Story Background Brief: The time is in the end of Sui Dynasty, The evil who nam
更改历史 * 2017-11-12 高京京 初始化文档 1 介绍、现状 介绍 JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 现状 JIRA已经被分布于115个国家的19000多个组织中的管理人员、开发人员、分析人员、测试人员和其他人员所广泛使用。 2 安装和使用 2.1 jira的安装 安装
confluence.md 官网:https://haomo-tech.com 作者:毫末科技 邮箱:hxg@haomo-studio.com
服务管理平台是一个开发者使用的平台,它能够通过可视化配置,自动生成接口服务,同时为了安全性和差异化服务,加入了接口权限控制功能,同时一键发布到数据汇总平台,并查看相关帮助文档,接口参数等信息。最后全程监控服务调用过程,记录相关日志服务信息,确保系统稳定,排查系统异常,同时提供相关接口调用统计分析数据。 服务的功能架构如下: 四个模块之间通过接口服务串联起来。 1. 首先需要进行服务配置,配
TianyaLVS 是一个很方便管理LVS+Keepalived负载均衡平台的B/S软件。 一、开发包 func certmaster mysql5.0+ LAMP/LNMP+CodeIgniter框架 rrdtool lvs-rrd 二、角色分配 LVS管理平台 Func Server+Certmaster Server LVS Server(master+backup) Real Server
主要内容:选择合适的网站,CMS平台在本章中,我们将首先讨论如何为您的网站做出正确的选择,以及为网站选择哪个内容管理系统(CMS)平台。 选择合适的网站 让我们通过问自己几个问题来理解这一点,然后详细讨论这个概念。 问题1 - 你要花多少钱? 回答 - 这是与预算直接相关的主要问题之一。 如果你的预算很低,那么应该考虑一些非商业性的,而不是太复杂。 问题2 - 需要多少时间来计划维护? 回答 - 如果要发布很多优惠报价,最好有一个博
Before Zebra管理平台库表及配置说明 功能 管理平台主要提供3块配置功能: 读写分离管理 分库分表管理 zookeeper地址管理 右上角为使用方式及文档 1.环境配置 进入环境管理页面可以对环境进行添加和删除操作, 环境配置将保存在zk中 2.读写分离配置 添加环境完成后进入读写分离页面,先选择使用环境 注册jdbcref,可以同时配置主从库信息,自动创建zebra配置 注册完成后点击