9420 开发工具包


sanri-tools-maven 是一个开源的用于企业开发的工具包,重点想解决项目开发中一些比较麻烦的问题

根据表和模板生成相应代码;一些身份证,企业代码,车架号的验证与生成; kafka ,zookeeper,redis 的数据监控,模拟数据发送等功能


工具理念

  1. 轻量级,只依赖于文件系统
  2. 小工具,大作用,减少模板代码的手工编写
  3. 自定义框架,加快项目启动速度 ,目前项目启动时间为 600 ms 左右

已经有的工具

已经存在的工具可以在 /src/main/resources/com/sanri/config/tools.properties 中查看

  1. 方法或变量取名
  2. 数据提取
  3. 生份证号码生成与验证
  4. kafka 监控和 offset 设置,支持新旧版本 kafka
  5. zookeeper 数据监控
  6. 模板代码生成,根据列字段
  7. 列字段比较
  8. 数据库表字段,注释,名称查询,及后续模板代码操作
  9. webservice 调试工具,只要输入 wsdl 地址,自动解析并构建 xml 消息
  10. 下划线转驼峰,驼峰转下划线工具
  11. 图片转 base64 ,base64 转图片
  12. SQL 客户端,已经支持 mysql,postgresql,oracle ; 可自定义实现其它数据库
  • 表结构查询
  • pojo,xml 生成
  • 项目模板代码生成
  • 数据导出
  1. 数据表处理工具(SQL 客户端升级版 )
  • 可以根据变量自定义模板
  • 由多个模板组成一种方案
  • 单表使用模板生成,然后生成多种模板的代码后统一下载
  • 单表使用方案生成
  • 多表使用方案生成
  1. 增加聊天功能(可以学下 websocket 怎么用)

    • 保存历史消息,针对当前 session 标签页而言
    • 目前只能群聊
    • 只支持单独 tomcat7 以上部署,用 maven tomcat 插件是不行的
  2. 增加 redis 数据监控功能

  • 可以搜索 key 信息
  • 反序列化查看 key 数据,使用项目的实体进行反序列化,可以看查看到所有的实体列
  1. 增加响应数据模拟工具

扩展自己的工具

  • 除前端交互 servlet 必须写在 com.sanri.app.servlet 包中以外,其它随便自己定制
  • servlet 中的代码由于框架 javassist 的原因 ,不支持 java8 的 lambada 表达式
  • 数据表元数据信息保存在 InitJdbcConnections.CONNECTIONS 信息中
  • 配置信息统一使用 ConfigCenter 进行读取,保存的是配置树结构
  • 文件系统配置信息统一管理接口 FileManagerServlet
  • 目录结构说明 com.sanri
    • algorithm 写的算法存放目录
    • app 所有工具信息
      • servlet 存放所有与前端交互的 servlet
    • deginmodel 设计模式学习
    • frame 本项目自定义框架
    • initexec 初始化执行目录;放入本目录的文件,在启动的时候会查找 @PostConstruct 注解的方法执行

如何搭建环境

  1. 通过git下载源码

  2. 安装部分第三方包到 maven 仓库,源 jar 包已经放到 /src/main/resources 下面

    2.1 如何安装请参考 https://www.cnblogs.com/yadongliang/p/9829760.html

  3. 修改部分配置

    • function.open.properties 用于配置临时文件路径和产生的配置路径
    • tools.properties 配置当前环境可以展示哪些工具,里面是所有工具的配置信息
    • jdbcdefault.properties 项目初始化时加载的默认 jdbc 连接 ,可将你的数据库配置到这里
    • mapper_jdbc_java.properties 这个是生成 java 实体类时,数据库类型映射到 java 类型
    • db_mapper_mybatis_type.properties 这个是数据库类型映射到 mybatis 类型的映射表
  4. mvn jetty:run

  5. 注意事项

    5.1 需要1.8 以上的 jdk ,前端需 chrome es6 以上

    5.2 项目所在路径不能有中文,不然会启动失败

或者你想更快的运行起来

下载 release 的 tomcat 版本

https://github.com/sanri1993/sanri-tools-maven/releases

然后可以直接像运行 tomcat 项目,直接运行

  1. 常用模板

    常用配置信息,把所有内容复制到function.open.properties 配置的 data.config.path 路径中

  2. 隐私说明

  • 由于有些功能用到了个人帐号,我目前还是留在配置文件中,请勿用于非法用途
  • 如果有能力,请用私人帐号代替我的帐号
  • 此工具纯属个人爱好创作,请勿用于商业用途

如何交流、反馈、参与贡献?

  • Git仓库:https://gitee.com/sanri/sanri-tools-maven
  • 官方QQ群:645576465
  • 技术讨论、二次开发等咨询、问题和建议,请移步到 QQ 群,我会在第一时间进行解答和回复
  • 如需关注项目最新动态,请Watch、Star项目,同时也是对项目最好的支持
  • 微信扫码并关注我,获得项目最新动态及更新提醒

更新记录

2019/09/13 更新

  • 优化多表方案生成的时候,选表卡死问题
  • 增加模板代码生成的时候,可以直接复制代码,直接复制高亮的代码会有问题
  • 去掉了旧的 kafka 监控,目前只支持新版本 kafka ,而且配置暂时还没理解透彻对于需要用户密码的,如果需要配置,可以私信我。
  • 站内聊天优化了滚动条

2020/01/22 更新

  • 优化了 kafka 监控,增加消息时间,所有分区数据查看并以消息时间倒序排序,每次刷新可以获取分区消息的变化量,增加 JSON 数据模拟发送

  • 解决 kafka 创建时 sasl 验证模式问题,现可以直接在界面以不同验证方式创建 kafka 连接

  • 数据表工具加入刷新功能,创建数据表后不用重新启动项目了

  • 数据表代码生成增加 tk.mybats 生成完整可运行的 springboot 项目

  • 解决取名工具无法创建业务的问题

  • 增加快速建表,这是个简单功能,后续版本会加强

  • 待解决:数据表增加表关系,根据表关系来生成代码; 快速建表加强,可以使用以前的表字段来快速建表

2020/05/18 更新

  • 增加快速建表功能,可以根据以前的表结构进行快速建表

  • 引入类加载器内部功能,可以上传类来操作一些序列化,响应数据模拟功能

  • 增加 redis 数据监控工具,查看 redis 拓扑结构

  • 增加响应数据模拟工具,可用于在开发时定义好数据结构就可以快速模拟数据,方便给前端提供模拟结构

  • 待优化:可能考虑在 tablehelp 中加入索引查看与新建功能,不知道这块的需求有多大

  • 待优化:现在上传 DTO 的流程太过复杂,后面考虑上传单个 class 文件,或者直接动态编译 Java 类

2020/07/09 更新

  • 首页增加每个工具的使用说明
  • 数据表工具表格列增加主键标识
  • 类加载器上传 dto 优化,可以上传单个 class 或单个 java 源文件; zip 上传优化可以不用关心 class 的层次结构 , zip2 后缀兼容以前的完整路径
  • 小说抓取代码优化,数据抓取已经封装注解,可以更方便的抓取数据,不仅仅是抓取小说
  • redis 数据查看优化,hash list 结构数据为避免数据过大,添加 key 和范围查询
  • 优化随机数据生成,使支持任意类型,除了树型结构
  • 增加 swaggerui 文档生成,可以转 word 文档
  • kafka 工具增加删除消费组功能,可以更好的配置 kafka 连接
  • kafka 工具增加流量监控功能,可以监控 实时,每分钟,每5分钟,每 15 分钟的数据流量; 使用 mBean ,基于 jmxPort
  • kafka 工具增加主题实时消费功能,可以选择类加载器和序列化,实现原始数据输出
  • 支持伪在线更新版本,后续将开发真正的在线更新

演示效果图



sanri-tools-maven 企业软件开发工具集的更多相关文章

  1. Open Source 开发工具集

    Open Source 开发工具集 转自:http://www.linuxforum.net原作者:gogoliu(Pooh-Bah) 编辑器: vi:老牌编辑器,在各个unix和unix-like平 ...

  2. ThoughtWorks、Teambition、Trello、Slack、DevCloud 主流敏捷软件开发工具平台比较

    在大公司做了6年程序员,2年项目经理的小王,正在创业公司迎来他焦虑的而立之年. 但是对于3个月前加入创业公司的决定,他现在有些烦躁和怀疑人生.在他过往的经验看来,公司新接的小项目,在过去的大公司里1个 ...

  3. PSP个人软件开发工具需求分析文档

    第一部分:前景与范围 1.业务需求 1.1 背景 在目前的软件项目开发过程中,进度计划总是非常不准确,经常出现延期,而且大多数都无法给出一个相对比较准确的延迟时间.即使使用用例包.用例的方式组织需求, ...

  4. PSP个人软件开发工具

    (您的阅读是我的荣幸,如有不满之处请留言指正!) 尚未完善.....工作中 为开发人员提供一个PSP工具,简化时间记录工作:同时提供数据使用的工具,帮助开发人提高估算能力.   PSP个人软件开发工具 ...

  5. 你不得不用的MAC软件开发工具软件,个个万里挑一

    作为软件行业,尤其是程序员,Mac上都不得不安装一些必备的MAC软件开发工具软件,下面给大家分享一些必装的MAC软件开发工具软件,以备日后之需,有备无患. 其中,包含各种语言的主流 IDE.开发辅助. ...

  6. 界面开发工具集Telerik UI for ASP.NET AJAX发布R2 2019

    Telerik UI for ASP.NET AJAX拥有构建ASP.NET AJAX和SharePoint应用程序的80+控件,将为任何浏览器和设备构建Web Forms应用程序的时间缩短一半.Te ...

  7. 全新的跨平台app软件开发工具——Lae软件开发平台

    Lae是一款运行于windows的界面开发工具,具有所见即所得.开发跨平台.UI布局自由.机制简单.维护容易等诸多优点,可以开发同时运行在windows.Linux.MacOX.iOS.Android ...

  8. Visual Studio 2015和ASP.NET 5中可用的前端开发工具集

    最近微软发布了一本白皮书,谈到了一些可以和Visual Studio 2015和ASP.NET 5配合使用的JS/前端Web开发工具(比如:函数库.任务执行器.框架等). 由于现在前端开发的生态系统在 ...

  9. 【转】软件开发工具介绍之 6.Web开发工具

    [本文转自http://www.cnblogs.com/dusonchen/archive/2011/02/09/1739087.html ] 1.EditPlus 无论是编写xhtml页面,还是cs ...

随机推荐

  1. python_lesson2 多进程探索 (multiprocessing包)

    进程池 进程池 (Process Pool)可以创建多个进程.这些进程就像是随时待命的士兵,准备执行任务(程序).一个进程池中可以容纳多个待命的士兵.       import multiproces ...

  2. android中getWidth()和getMeasuredWidth()之间的区别

    先给出一个结论:getMeasuredWidth()获取的是view原始的大小,也就是这个view在XML文件中配置或者是代码中设置的大小.getWidth()获取的是这个view最终显示的大小,这个 ...

  3. python 获取两位的月份(09)和天数(09)

  4. Page "页面路径" has not been registered yet.

    网上找了很多方法,但和我遇到的都不一样,我这个页面是我路由接口更改时遇到的错误,原因是我移动了文件,js里引用的文件找不到了 解决方法:更改引用路径即可

  5. 如何解决jeecgBoot前端运行项目之后无法获取验证码的问题

    我也是第一次接触这个开源项目,拿到项目之后,安装完环境和依赖,当我启动项目的时候,验证码却刷新不出来. 然后公司后端告诉我需要改两个接口,一个是public目录下的index.html和vue.con ...

  6. spring boot actuator扩展httptrace的记录

    SpringBoot记录HTTP请求日志 1.需求解读 需求: 框架需要记录每一个HTTP请求的信息,包括请求路径.请求参数.响应状态.返回参数.请求耗时等信息. 需求解读: Springboot框架 ...

  7. Spring 面试详解

    SpringSpring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象.Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地 ...

  8. 新来的"大神"用策略模式把if else给"优化"了,技术总监说:能不能想好了再改?

    本文来自作者投稿,原作者:上帝爱吃苹果 目前在魔都,贝壳找房是我的雇主,平时关注一些 java 领域相关的技术,希望你们能在这篇文章中找到些有用的东西.个人水平有限,如果文章有错误还请指出,在留言区一 ...

  9. 一文告诉你Linux如何配置KVM虚拟化--安装篇

    KVM全称"Kernel-based Virtual Machine",即基于内核的虚拟机,在linux内启用kvm需要硬件,内核和软件(qemu)支持,这篇文章教你如何配置并安装 ...

  10. 写出Python中列表、元祖、字典、字符串的至少5种以上的方法

    1.列表 常用方法 作用 参数 append(data) 在尾部添加数据 data-加入到列表中的数据 insert(idx,data) 在指定位置添加数据 idx-索引    data-数据 ext ...