yue-library

Apache-2.0
Java
跨平台
yl-yue · 2019年09月18日 · 1657 次阅读 · 1 条评论

一个基于 SpringBoot 封装的基础库

yue-library官网 yue-library JavaDoc Spring%20Boot Version Spring%20Cloud Version gitee star github star

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

-- QQ 群:883630899 --


介绍

  yue-library 是一个基于 SpringBoot 封装的基础库,内置丰富的 JDK 工具,自动装配了一系列的基础 Bean 与环境配置项,可用于快速构建 SpringCloud 项目,让微服务变得更简单。

工程结构

. yue-library
├── yue-library  基础库
│   ├── yue-library-dependencies  父pom
│   ├── yue-library-base          基础库提供了丰富的Java工具包,同时也自动装配了一系列基础Bean等
│   ├── yue-library-data-jdbc     基于SpringJDBC进行二次封装,拥有着强大性能的同时又不失简单、灵活等
│   ├── yue-library-data-redis    基于SpringRedis进行二次封装,更简单灵活,提供全局token与登录相关特性等
│   ├── yue-library-pay           基于pay-java-parent进行二次封装,让你真正做到一行代码实现支付聚合
│   ├── yue-library-cloud-oss
│   └── yue-library-cloud-sms
├── yue-library-samples  基础库示例
│   ├── yue-library-test                yue-library代码测试项目:单元测试、接口测试、代码示例
│   ├── yue-library-template-simple     yue-library模版:SpringBoot项目模版
│   └── yue-library-template-ssc        yue-library模版:SpringCloud项目模版,SOA共享架构(阿里巴巴中台)
└── yue

快速开始

引入项目依赖

maven 项目,在 pom.xml 文件中添加如下一段代码,并将${version}替换为对应版本号:maven-central

<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 的版本命名方式,采用 SpringCloud 版本名作为前缀,然后以.1、.2、.3...这种形式,目的是为了方便区分所依赖的SpringCloud版本。

  yue-library-base为其他模块的基础依赖(简称基础库),所以若需要引入除基础库之外的模块(如:data-jdbc、data-redis),可以不引入yue-library-base

JDK 版本 JDK 说明 SpringCloud 版本 版本说明
JDK8 LTS(Oracle 长期支持版本),目前大部分互联网公司采用版本 Finchley JDK8 兼容版本,每次新特性发布都会进行一次全面的兼容适配与测试,以供 JDK8 用户稳定使用
JDK11 LTS(Oracle 长期支持版本),作者采用版本 Greenwich JDK11 推荐版本,提供更快速的迭代与反馈

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

模块说明

yue-library-base(必备)

  yue-library-base提供了丰富的 Java 工具包,它能够帮助我们简化每一行代码(集成Hutool工具包)。

  同时也自动装配了一系列基础 Bean,可在 application.yml 文件中配置关闭,所有配置项皆是以yue.*开头,如:yue.cors.allow=false代表不允许跨域。

  • 丰富的 Java 基础工具类,对文件、流、加密解密、转码、正则、线程、XML 等 JDK 方法进行封装
  • 默认开启热加载、热部署、支持跨域,一键解决联调问题
  • 全局统一异常处理基类,结合Result对象,定位异常更轻松,前端显示更贴切
  • 异步线程池:共用父线程上下文环境,异步执行任务时不丢失 token
  • ResultHttp 最外层响应对象,更适应 Restful 风格 API
  • validator参数校验器,支持单参数连写与 POJO 对象(注解)校验等,更多的校验规则,更贴切的国内校验场景。(如:手机号、身份证号码)
  • Convert类型转换器,内置 hutool、fastjson、yue 三种类型转换规则,判断精确性能强大,未知类型兼容性更强

  更多详细介绍,请查看中文文档

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

  data-jdbc 库基于 SpringJDBC 进行二次封装,拥有着强大性能的同时又不失简单、灵活。特性如下:

  • 比 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 操作是否符合预期,更好的避免脏数据的产生与违规操作
  • 全局异常处理:CRUD 操作相关异常统一处理,定位更精准,提示更友好,实现全局 Restful 风格

  更多详细介绍,请查看中文文档

yue-library-data-redis(推荐)

  data-redis 库基于 SpringRedis 进行二次封装,更简单灵活,提供全局 token 与登录等特性:

  • 简化使用并拥有 Redis 原生常用命令所对应的方法
  • 保留 SpringRedis 所有常用特性:分布式缓存
  • 提供分布式 token、分布式锁
  • 封装大量第三方登录特性,使登录更简单易于维护
  • 封装常用的登录判断操作与 redis-token 解析

  更多详细介绍,请查看中文文档

社区

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

参与贡献

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

  • 贡献代码:代码地址 yue-library ,欢迎提交 Issue 或者 Pull Requests
  1. Fork 本仓库并从 JDK 对应的分支或对应的某个版本 创建你的分支
  2. 如果你添加的代码需要测试,请添加测试,确保单元测试通过(测试代码请放在:yue-library-test中)
  3. 如果你修改了 API,请更新文档
  4. 确保代码风格一致
  5. 提交代码
  6. 新建 Pull Request
  • 维护文档:文档地址 yue-library-doc ,欢迎参与翻译和修订
评论列表
yl-yue 发表于 2019年09月18日

欢迎留言...