yue-library 开源发布:基于 Spring Boot 封装的增强库

news/2024/5/18 22:43:15 标签: yue-library, Spring Boot, Spring Cloud, hutool, JDBC

yue-library/raw/master/docs/_images/logo.png" width="400" />

一个基于SpringBoot封装的增强库

<a class=yue-library官网" /> <a class=yue-library JavaDoc" /> Maven Central with version prefix filteryue-library/j?style=flat-square" /> GitHubyue-library?style=flat-square" /> Spring%20Boot Version Spring%20Cloud Version yue-library.svg" /> yue-library/badge/star.svg?theme=dark" alt="gitee star" /> GitHub Repo starsyue-library?style=social" /> GitHub issuesyue-library?style=flat-square" />

-- 主页:https://ylyue.cn/ --

-- QQ群:883630899 --


介绍

yue-library是一个基于SpringBoot封装的增强库,提供丰富的Java工具类库、优越的ORM框架、优雅的业务封装、优化的Spring环境配置、完善的规约限制、配套的代码生成平台、安稳贴切的开源架构方案等,只为打造更好的JavaWeb开发环境,提升大家的开发质量与效率,降低企业研发成本。

适用于企业快速构建属于自己的切合架构,不为技术负累,不盲目跟风,不原地踏步,从单体与集群分布式与微服务,企业结合自身业务所处阶段,灵活选择逐步跟进升级。

工程结构

. yue-library
├── yue-library  父pom
│   ├── yue-library-dependencies  dependencies版本控制
│   ├── yue-library-base          基础库提供了丰富的Java工具包,同时也自动装配了一系列基础Bean等
│   ├── yue-library-base-crypto   基于Hutool实现的加解密模块,提供诸如数据脱敏此类的更多特性
│   ├── yue-library-web           基础库WebMvc实现,用于servlet项目
│   ├── yue-library-webflux       基础库WebFlux实现,用于响应式编程项目(如:SpringCloudGateway)
│   ├── yue-library-data-jdbc     基于SpringJDBC进行二次封装,拥有着强大性能的同时又不失简单、灵活等
│   ├── yue-library-data-redis    基于SpringRedis进行二次封装,更简单灵活,提供全局token与登录相关特性等
│   ├── yue-library-auth-service  基于SpringSecurity进行二次封装,更简单灵活,提供全局token与登录等特性
│   ├── yue-library-auth-client   auth-client为auth-service客户端模块,提供获取当前登录用户状态信息等特性
│   └── yue-library-pay           基于pay-java-parent进行二次封装,让你真正做到一行代码实现支付聚合
├── yue-library-samples  基础库示例
│   ├── yue-library-test                yue-library-web代码测试项目:单元测试、接口测试、代码示例
│   ├── yue-library-test-webflux        yue-library-webflux代码测试项目:单元测试、接口测试、代码示例
│   ├── yue-library-template-simple     yue-library模版:SpringBoot项目模版
│   └── yue-library-template-ssc        yue-library模版:SpringCloud项目模版,SOA共享架构(阿里巴巴中台)
└── yue

快速开始

引入项目依赖

maven项目,在pom.xml文件中添加如下一段代码,并将${version}替换为对应版本号:yue-library/j?style=flat-square" />

<parent>
	<groupId>ai.ylyue</groupId>
	<artifactId>yue-library-dependencies</artifactId>
	<version>${version}</version>
</parent>

随后引入所需要的模块,如基础库:yue-library-base

<dependencies>
	<dependency>
		<groupId>ai.ylyue</groupId>
		<artifactId>yue-library-base</artifactId>
	</dependency>
	...
</dependencies>

版本说明

yue-library的版本命名方式,继2.1.0开始采用与 SpringBoot版本发行 对应的命名方式。
yue-library-base为其他模块的基础依赖(简称基础库),所以若需要引入除基础库之外的模块(如:web、webflux、data-jdbc、data-redis),可以不引入yue-library-base

示例版本号版本号区别
j8.2.x基于Java 8的2.x.x版本
j11.2.x基于Java 11的2.x.x版本
Finchley.xGreenwich.x2.1.x历史版本,具体区分请查看历史版本文档

👉点击查看pom.xml依赖

更多细节,请查看中文文档

核心模块说明

yue-library-base(必备)

base模块提供了丰富的Java工具类库,它能够帮助我们简化每一行代码(增强Hutool工具包)。

  同时提供优越的Spring本土化环境配置,可在 application.yml 文件中配置关闭,所有配置项皆是以yue.*开头,如:yue.cors.allow=false代表不允许跨域。

  • 丰富的Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装
  • 完善的RESTful支持,使用HTTP响应包装对象Result,友好返回接口响应内容
  • 完善的异常处理机制,RESTful状态码与HTTP状态码自动同步,异常提示简单易懂
  • 出色的服务端校验框架validator,支持多种校验方式,简单易用,校验规则丰富,更贴切国内校验场景
  • 强大的类型转换器Convert,优越的性能,超强的容错能力,妈妈再也不用担心我找不到好用的“BeanUtils”了
  • 安全的异步线程池,完美解决子线程上下文环境问题,就算是高并发下,异步执行任务时再也不丢失token等参数了
  • 优雅的密钥交换加密,安全高效的解决HTTP通信传输安全
  • 简洁完善的Java全局网络代理,轻松解决内网部署时的网络代理需求

yue-library-web/webflux(必备)

web/webflux模块提供友好的JavaWeb开发环境,免去本土化烦恼,提供友好的默认配置,解决开发中常遇的槽点,提升大家的开发质量与效率,降低企业研发成本。

  • 美妙愉悦的开发体验,让跨域、热加载、时间格式、参数获取等,低级而又普遍存在的问题都见鬼去吧
  • 强大的HTTP请求参数解析器,解决参数获取困扰,Request请求参数智能解析,让前后端联调和平相处
  • 强大的HTTP响应消息转换器,优雅实现固定类型参数格式化、NULL值处理等,轻松收到来至前端同事的致谢
  • 强大的HTTP请求包装器,解决Servlet输入流被前置的某个拦截器读取一空,导致请求参数获取不到
  • 强大的ServletUtils,让我们在任何时候任何地方,对接口的请求参数与响应内容都能为所欲为
  • 优雅的接口版本控制@ApiVersion,再也不用担心团队成员对接口规范视若无睹为所欲为了

yue-library-data-jdbc(强烈推荐)

data-jdbc模块基于SpringJdbc封装的ORM框架,拥有着强大性能的同时又不失简单灵活,特性如下:

  • 强大易用:比SpringJdbc更方便好用、比SpringJpa更简单灵活
  • 无侵入:data-jdbc在SpringJdbc的基础上进行扩展,只做增强不做改变,简化CRUD等操作
  • 依赖管理:引入即可启动项目,关联druid实现SQL全监控
  • 预防Sql注入:内置Sql注入剥离器,有效预防Sql注入攻击
  • 损耗小:封装大量经过SQL优化处理的CRUD方法,直接面向对象操作,对比原生级CRUD处理,性能基本无损甚至更优
  • 通用CRUD操作:内置通用DAO,通过继承方式即可实现单表大部分CRUD操作
  • 更科学的分页:分页参数自动解析,写分页等同于写基本List查询,更有优化型分页SQL检查
  • 内置性能分析插件:可输出Sql语句以及其执行时间,建议开发测试时启用该功能,能有效解决慢查询
  • 类型强化:支持原生级SQL查询,并强化原生查询结果,简单便捷+可维护组合(支持全Json或全DO)
  • CRUD校验:CRUD操作是否符合预期,更好的避免脏数据的产生与违规操作
  • JDBC审计:敏感操作全覆盖,简单实现对数据变动的审计需求
  • 数据脱敏:只需简单的配置即可实现对数据脱敏存储需求,操作时自动加解密
  • 全局异常处理:CRUD操作相关异常统一处理,定位更精准,提示更友好,实现全局RESTful风格

更多模块

关于data-redisdata-esauth-serviceauth-client等模块的特性介绍与更详细的使用说明,请查看中文文档

社区

在Gitter的社区里可以找到yue-library的用户和开发者团队。

参与贡献

欢迎各路好汉一起来参与完善 yue-library,我们期待你的 PR!

  • 贡献代码:代码地址 yue-library ,欢迎提交 Issue 或者 Pull Requests
  1. Fork本仓库并从master分支创建你的分支
  2. 如果你添加的代码需要测试,请添加测试,确保单元测试通过(测试代码请放在:yue-library-test中)
  3. 如果你修改了API,请更新文档
  4. 确保代码风格一致
  5. 提交代码
  6. 新建Pull Request
  7. 等待维护者合并
  • 维护文档:文档地址 yue-library-doc ,欢迎参与翻译和修订

PR遵照原则

yue-library欢迎你的加入,进行开源共建,提交的pr(pull request)需符合如下规范:

  • 关于注释:提供完备的注释,尤其对每个新增的方法应按照Java文档规范标明方法说明、参数说明、返回值说明等信息,亦可加上署名,必要时请添加单元测试
  • 关于缩进:采用IDEA中默认的空格作为标准,可设置一个tab四个空格
  • 关于三方库:新加的方法不要使用第三方库的方法,yue-library遵循无依赖原则

特别鸣谢

logo-jetbrains       logo-spring-tools-4

http://www.niftyadmin.cn/n/1718224.html

相关文章

sigmoid函数_CNN卷积神经网络入门(二):激活函数

CNN卷积神经网络入门(一)&#xff1a;何为CNN知道了什么是CNN后&#xff0c;将介绍一系列预备知识。先从激活函数开始吧。激活函数(Activation Function)激活函数&#xff0c;顾名思义&#xff0c;本质上是函数&#xff0c;进行自变量(输入)向因变量(输出)的转化。作用是“激活…

c语言使用数组计算最大数。_C语言实例第11期:将3个数由大到小的顺序输出

点击上方“C语言中文社区”&#xff0c;选择“设为星标★”技术干货第一时间送达&#xff01;C语言交流群&#xff1a;后台回复【C语言】往期回顾&#xff1a;C语言实例第01期&#xff1a;十进制数转换二进制数C语言实例第02期&#xff1a;判断某一年是否为闰年C语言实例第03期…

3位水仙花数计算pythonoj_陈小陌博客

水仙花又称为自恋数&#xff0c;传说纳克索斯曾在湖边欣赏自己的美丽&#xff0c;不慎跌入湖中溺水而亡&#xff0c;在他跌入湖中的地方&#xff0c;长出了一种花&#xff0c;被称为纳克索斯花&#xff0c;也成为水仙花。而由于湖的终日哭泣&#xff0c;湖水也变成苦涩的泪水。…

java中月日年这种怎么转换成年月日_java

1 java.util.Date类日期类常用方法:String toString&#xff08;&#xff09;把此日期对象转换为Date对象booleanbefore&#xff08;Date when&#xff09;测试此日期是否在指定日期之前。boolean equals&#xff08;Object obj&#xff09;比较两个日期的相等性。布尔之后&…

linux find 查找文件_Linux查找文件6个高效工具

1. 前言请关注本头条号&#xff0c;每天坚持更新原创干货技术文章。如需学习视频&#xff0c;请在微信搜索公众号“智传网优”直接开始自助视频学习我们使用Linux过程中&#xff0c;经常会有搜索文件的需求&#xff0c;那么Linux命令下有哪些工具可以快速查找文件呢&#xff1f…

python获取数据库配置_使用python读取配置文件并从mysql数据库中获取数据进行传参(基于Httprunner)...

最近在使用httprunner进行接口测试&#xff0c;在传参时&#xff0c;用到了三种方法&#xff1a;&#xff08;1&#xff09;从csv文件中获取&#xff1b;&#xff08;2&#xff09;在config中声名然后进行引用&#xff1b;&#xff08;3&#xff09;从函数中获取。在测试过程中…

htmlcss网页设计代码案例_网页设计从 -- 零开始创建网站 --课程分享

探索如何使用HTML、CSS和jQuery构建网站。一步一步指导如何从零开始建立网站你将学到什么使用HTML CSS构建网站了解如何为高级功能添加jQuery创建用于创建网站的web设计工作流从头开始创建多页网站要求渴望学习基本HTML和CSS计算机访问JavaScript基础说明从零开始建立一个网站你…

python装逼_神级装逼技能来了!利用Python发邮件远程控制自己电脑!不要太强

开发工具 Python版本&#xff1a;3.6.4 相关模块&#xff1a; PIL模块&#xff1b; email模块&#xff1b; 以及一些Python自带的模块。 私信小编007即可获取数十套PDF哦&#xff01; 环境搭建 安装Python并添加到环境变量&#xff0c;pip安装需要的相关模块即可。&#xff08;…