SpringBoot 增强库 yue-library 2.1.0 发布,提供更多特性支持

来源: 投稿
作者: yl-yue
2020-08-16 13:18:00

logo

yue-library

yue-library是一个基于SpringBoot封装的基础库

  • 内置丰富的JDK工具
  • 自动装配了一系列的基础Bean与环境配置项
  • 快速构建SpringCloud项目,让微服务变得更简单

收藏一波以表支持吧(≧▽≦)/!本次发布是一次历时9个月的大版本发布,虽然yue-library一直在不断的更新,但这次大版本的发布意味着yue-library看到了更远也能走得更远,为后续多租户、国产化、数据脱敏等趋势需求打下了坚定基础。本次更新分离了响应式编程与阻塞式编程,对Auth认证模块也做了相应的拆分与优化,同时从此版本开始对开发文档进行了进一步支持,区分各大本版文档说明,增加历史文档专区。

点击查看完整的版本更新日志

2.1.0【2020-08-16】

新特性

基于全新的spring-cloud-alibaba体系封装改造,拆分独立的OAuth认证体系,对webmvc、webflux分开支持。依赖定义如下:

依赖 版本
spring-boot 2.1.10.RELEASE
spring-cloud-alibaba 2.1.2.RELEASE
spring-cloud Greenwich.SR5

点击查看更多依赖版本定义

  • 【base】提供yml默认配置支持,一键解决常规坑点困扰(如:时间格式化、可执行SQL打印、接口定义打印等),更适合国内标准
  • 【base】@ApiVersion 注解可优雅的实现接口版本控制,只为更好的Restful
  • 【web】实用的参数解析器(解决参数获取困扰,不再区分Query传参与Body传参,Request请求参数智能解析),并提供RequestParamUtils工具类适用于各种环境下获取请求参数
  • 【web】HTTP消息转换器增强,fastjson与jackson一键切换
  • 【redis】规范redis包名标准,分离OAuth认证体系
  • 【redis】提供可配置的Redis存储对象序列/反序列化器
  • 【jdbc】遵守Java开发手册命名规约,Service/DAO 层方法命名规约,优化如获取单个对象采用 get 做前缀
  • 【jdbc】提供友好的方言支持,为适配国产化数据库打下基础
  • 【jdbc】提供业务主键支持
  • 【jdbc】提供字段命名策略支持
  • 【jdbc】提供逻辑删除支持
  • 【jdbc】提供获得表元数据支持

Bug修复

  • 【jdbc】批量插入容易报错问题

工程结构

. yue-library
├── yue-library  基础库
│   ├── yue-library-dependencies  父pom
│   ├── 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-cloud-oss
│   └── yue-library-cloud-sms
├── yue-library-samples  基础库示例
│   ├── yue-library-test		yue-library代码测试项目:单元测试、接口测试、代码示例
│   ├── 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}替换为对应版本号:maven-central

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

随后引入所需要的模块,如WebMvc项目引入:yue-library-web

依赖说明:yue-library-base为基础模块,一般情况下不需要单独引入,如:web、data-jdbc、data-redis等模块皆已默认依赖。

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

启动项目

新建一个SpringBoot main方法启动类:

@SpringBootApplication
public class TestApplication {

	public static void main(String[] args) throws Exception {
		SpringApplication.run(TestApplication.class, args);
	}

}

写一个测试接口:

@RestController
@RequestMapping("/quickstart")
public class QuickstartController {

	@GetMapping("/get")
	public Result<?> get(JSONObject paramJson) {
		return ResultInfo.success(paramJson);
	}
	
}

访问接口测试,如:http://localhost:8080/quickstart/get

{
    "code": 200,
    "msg": "成功",
    "flag": true,
    "count": null,
    "data": {}
}

上面的代码完全保持了SpringBoot的风格,但又提供了更多特性增强,如:HTTP消息转换器对 Alibaba Fastjson 的支持,同时不再区分 query from-data json 等传参方式,默认也对 跨域、时间格式、异常、参数校验 等常见坑点进行了本土化处理与特性增强。

版本说明

yue-library的版本命名方式,继2.1.0开始采用与SpringBoot和SpringCloudAlibaba相同的命名方式。

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

推荐版本依赖关系

yue-library Java SpringBoot SpringCloud SpringCloudAlibaba
2.1 Java 11+ 2.1+ Greenwich 2.1+
2.2 Java 11+ 2.2+ Hoxton 2.2+

依赖关系介绍

依赖组件名 依赖组件说明 yue-library支持版本
Java 11 LTS(Oracle长期支持版本) Greenwich、2.1、2.2
SpringBoot 2.1 兼容Java 8、Java 11 Greenwich、2.1
SpringBoot 2.2 兼容Java 8、Java 11、Java 13 2.2
SpringCloud Greenwich 默认依赖SpringBoot 2.1 Greenwich、2.1
SpringCloud Hoxton 默认依赖SpringBoot 2.2 2.2
SpringCloudAlibaba 2.1 默认依赖SpringBoot 2.1、SpringCloud Greenwich 2.1
SpringCloudAlibaba 2.2 默认依赖SpringBoot 2.2、SpringCloud Hoxton 2.2

SpringBoot版本发行说明

SpringCloudAlibaba版本发行说明

配置与文档说明

yue-library自动装配了一系列的基础Bean与环境配置项,可在 application.yml 文件中配置关闭,所有配置项皆是以yue.*开头,如:yue.cors.allow=false代表不允许跨域,更多配置项与细节介绍,可查看 官方文档 中各模块的详细说明。

官方文档 提供各模块的详细介绍与使用示例,类与方法说明可参阅 API文档,SpringBoot项目基础模版可使用 yue-library-template-simple,单元测试代码与标准示例可参考:yue-library-test

结语

引用此项目作基础依赖,后续也可很好的对于服务架构进行升级(单体架构、集群架构、微服务、SOA微服务)

新开发项目,建议直接以集群架构形式撸代码,不需要一开始就搭建微服务等,可根据业务需求实际出发。(不限于有SOA共享中心的伙伴)

展开阅读全文
精彩评论
springboot的原理还没搞明白,这又套上了一个套
2020-08-17 08:29
2
举报
👍
2020-08-16 18:03
2
举报
后续主要方向为多租户、国产化、数据脱敏等方案适配,提供更多示例与文档说明。
2020-08-16 16:12
2
举报
39 收藏
分享
6 评论
39 收藏
分享
返回顶部
顶部