同步操作将从 ChinaLym/shoulder-framework 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
如果说我比别人看得更远些,那是因为我站在了巨人的肩上. ——牛顿
一款 Java WEB
/ 微服务
开发框架,在 Spring Boot
、Spring Cloud
基础上实现了一些可扩展
的常用功能。
Spring Boot
可以把 Shoulder
看作为 Spring Boot
的一个 插件
。即在 Spring Boot
基础上实现了常用能力的集合,将 软件优雅设计与开发最佳实践 落地。
Shoulder
实现了这项工作中重复的部分,提供了支持扩展、二次开发的能力。Shoulder
作为公司里的基础脚手架,或是在毕设
、外包
、等项目中快速获得一些常用功能,加速开发!日志
、异常
、错误码
打通、改造了 lombok
源码,提供简化开发注解,极大减少代码量Sl4j
规范,无兼容问题,最小化配置、开箱即用错误码规范
不在头疼异常
、错误码
处理AES\RSA\ECC\SHA\MD5
等公开算法的实现。shoulder 还在这之上提供了安全
可靠
可生产落地
的方案与实现,如 多级密钥管理
、加密算法平滑升级
ECC
的密钥协商实现注解
极简使用)JSR
规范,实现更多常用校验规则Spring Security
)Spring Security
迁移自 learn-spring-security)Spring Boot
类似,无需再思考引入哪个版本,会不会冲突,Shoulder
管理了常用依赖的版本号,如 spring-boot
、spring-cloud
、spring-cloud-alibaba
shoulder-starter-web
不需要再引入 spring-boot-starter-web
也不需要担心还要依赖什么IDE
的自动提示通过简单的 示例工程(github gitee),快速感受 Shoulder
带来的优雅编码体验。
shoulder
提供了 maven archetype ,可通过该工程快速创建
可以直接使用以下 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 继承 shoulder 提供的父工程,自动管理版本号,包含了 spring-boot-parent -->
<parent>
<groupId>cn.itlym</groupId>
<artifactId>shoulder-parent</artifactId>
<version>0.5</version><!-- shoulder-version -->
</parent>
<groupId>com.demo</groupId><!-- 你的 groupId -->
<artifactId>hello-shoulder</artifactId><!-- 你的 artifactId -->
<version>1.0.0-SNAPSHOT</version><!-- 你的 version -->
<dependencies>
<!-- 版本号、web 相关依赖 自动管理。已自动引入对应的 spring-boot-starter-web -->
<dependency>
<groupId>cn.itlym</groupId>
<artifactId>shoulder-starter-web</artifactId>
</dependency>
</dependencies>
</project>
已经继承了其他父工程,如(spring-boot-parent
)且不想修改,只需加入 Shoulder
的依赖清单,然后在 dependency
中引入想要的模块即可~
<!-- shoulder 的依赖管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>cn.itlym</groupId>
<artifactId>shoulder-dependencies</artifactId>
<version>${shoulder.version}</version><!-- shoulder-version -->
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--如希望使用 Shoulder 中 web 相关的能力增强,只需引入 web 模块-->
<dependency>
<groupId>cn.itlym</groupId>
<artifactId>shoulder-starter-web</artifactId>
</dependency>
</dependencies>
首选要确定该能力是否是 Shoulder
提供的,不然方向错了,就白忙活啦~ (注:可以通过包路径、类路径来判断~)
Shoulder提供的能力可以参见使用手册(TODO wiki)
Shoulder
自动引入并管理了 Spring Boot
的版本,但未屏蔽或改变 Spring Boot
用法,一些功能并不是 Shoulder 提供的,Shoulder仅仅是帮你引入咯~
如 Spring Boot
、Spring Cloud
等优秀第三方库为我们提供了大量能力(致敬),使用这些时可以去看他们官方的一手教程,或到搜索引擎搜索对应关键词。如
Spring Boot
提供的,应该搜索 Spring Boot 自定义过滤器
而不是 Shoulder 自定义过滤器
Spring Boot
提供哒,所以这么搜索会更合适哟~ Spring Boot 如何访问静态资源文件
当认为是 Shoulder 框架的 Bug 时可以在 issure
中描述你遇到的问题
、如何复现
、你尝试过的排查与解决方式
,甚至可行的缺陷修复方案。
欢迎提交代码~ 以下提交都是可以的~
JavaDoc
与 spring、spring-boot 的包模块划分、包命名策略相似(简化使用者学习成本)
最外层的 shoulder-build 管理了 shoulder 的构建,包含了三个部分
shoulder-dependencies 负责依赖版本管理
shoulder-parent 是 shoulder 所有功能模块的直接父类,负责管理他们的公共依赖、插件配置等,使用者也可以直接继承该模块。
shoulder-build 包含 shoulder 的代码,其下面又按照用途分为两个模块。
shoulder-base: 基础定义与功能模块,真正实现功能代码,但使用者一般不会直接引入。
shoulder-starters: 带 Spring Boot
自动配置的开箱即用模块,并提供 shoulder
功能的默认实现,简化使用者上手难度。
shoulder 复用/优化当前业界成熟的解决方案(站在巨人的肩膀上),将
开源社区
中优秀的实现带给使用者,给使用者一个肩膀! 为减少使用者的上手成本,在用法上借鉴了Spring Boot
,使用Shoulder
就像使用Spring Boot
的starter
一样简单(开箱即用)!
喜欢引入新的优秀技术,但不盲目追捧,当且仅当有完整的实践方案
一千开发手里有一千种实践之路,这一千条路中,平坦的
(开发维护成本低)、坎坷的
(开发维护成本高) 差别很大,使用业界有成熟的解决方案往往会事半功倍!
为保证 代码性能
,降低 维护成本
、开发成本
。Shoulder 还提供了技术选型指导
和一定的开发规范
,带你轻松踏上最佳实践之路!点击这里可以查看 Shoulder Framework 推荐的开发规约
Shoulder
希望做一个整套的可复用的平台(PaaS
),使用者只需要做做自己的业务即可。整体格局如下
Shoulder iPaaS
基础中间件环境 Shoulder 提供依赖中间件的Docker
镜像或部署教程(如 数据库、消息队列、服务注册中心、任务调度中心、搜索引擎、报警与监控系统等)。Shoulder Specific
软件系开发设计注意事项、落地方案和规范
Shoulder Platform
共性业务平台,提供 用户平台
、支付平台
、通知中心
、业务网关
、数据字典
、全局ID生产器
等基础、通用业务能力平台Shoulder Platform SDK
以 sdk 形式方便业务层对接使用。项目 | 开源地址 | 说明 |
---|---|---|
Shoulder Framework | github、gitee | 开发框架,在 Spring Boot 基础之上,结合软件优雅设计与开发最佳实践,增加常用的功能,任何基于Spring Boot /Spring Cloud 的项目都可以使用。 |
Shoulder Platform | github、gitee | SaaS 开发平台,提供了基础通用能力,与具体业务无关 |
shoulder-framework-demo | github、gitee | 以简单的例子介绍 Shoulder Framework 的使用 |
shoulder-plugins | github、gitee | shoulder 提供的的减少开发工作量的maven 插件(非必须,如遵循软件优雅设计与开发最佳实践-国际化开发时推荐希望使用自动生成多语言翻译资源文件的插件减少开发工作量) |
shoulder-lombok | github、gitee | 在lombok 之上,增加 @SLog 注解,用于简化软件优雅设计与开发最佳实践-错误码与日志 -shoulder 实现的日志框架的使用(非必须) |
shoulder-lombok-idea-plugin | github、gitee | 在 lombok-idea-plugin 之上,在 IDEA 中增加@SLog 的编码提示,以更好的使用 shoulder-lombok (非必须,使用 shoulder-lombok 时推荐) |
Shoulder iPaaS | github、gitee | iPaaS 平台,介绍了常见中间件、监控系统、私有基础平台如何部署 |
采用 主版本号.次版本号.修订号(MAJOR.MINOR.PATCH) 的形式
感谢小伙伴们的 Star / Fork,欢迎在 issue 交流,留下你的建议、期待的新功能等~
欢迎 fork
并提交合并请求一起改善该框架 合作开发流程与项目介绍
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。