6 Star 10 Fork 8

ChinaLym / shoulder-framework

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

Shoulder Framework

LOGO

如果说我比别人看得更远些,那是因为我站在了巨人的肩上. ——牛顿

AUR

📖介绍 English language

Shoulder FrameworkSpring Boot 的插件,并提供了一些好用功能加速开发! 部分功能举例:

  • AOP日志/异常处理
  • 一键切换集群模式
  • 日志追踪上报
  • 多语言
  • 全自动动态字典
  • 全局ID
  • 统一报文格式
  • 操作审计
  • 多种验证码
  • 异步上传、下载
  • 绝密通信
  • 内嵌式DB/Redis

🚀 快速开始

🔥🔥【推荐】 👉 示例工程

快速感受 Shoulder的顺滑编码的魅力。 github / gitee

🔥在已有的 Spring-Boot 工程中使用

pom.xml 中添加你需要的模块即可使用,如:希望使用shoulder-web 的动态字典能力 ,则引入对应starter即可~

        <!--如希望使用 Shoulder 中 web 相关的能力增强,只需引入 web 模块-->
        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-starter-web</artifactId>
            <version>0.8</version>
        </dependency>

✈️ 通过 maven-archetype 创建新项目

通过 shoulder-maven-archetype,快速创建。

打开命令行,运行以下命令来生成新的 Shoulder 项目:

mvn archetype:generate -DarchetypeGroupId=cn.itlym -DarchetypeArtifactId=shoulder-archetype-simple -DarchetypeVersion=0.8 \
  -DgroupId=com.yourcompany -DartifactId=appName -Dversion=1.0-SNAPSHOT

🚄 手动创建新项目

Spring Boot,填好 parent 即用,可以直接使用以下 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.8</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>

🆚对比其他 Web 框架

更安全易扩展使用者代码可读性强维护成本低上手成本低:设计上遵循 软件优雅设计与开发最佳实践 ,让使用者项目不仅开发提效,维护成本也更低!

✨适用场景

  • 毕业设计外包项目 :基于提供能力飞速开发。
  • 微服务基层框架Shoulder 设计时遵循编码规范,统一的编码界面和产物,让开发 / 运维团队轻松维护。
  • 内部框架开发: Shoulder设计时充分吸收Spring Boot的思想,注重可扩展,这使得一些希望构建内部框架的 公司/组织 可以快速二次为内部框架。

❓常见问题 & FAQ

Q:是重复造轮子吗?

非也,Shoulder设计理念如命名——“站在巨人肩膀上”,不倡导重复造轮子,重在将“巨人的肩膀”(优秀的三方包)安全高效地带给使用者,让开发者放心地感受前“巨人肩膀”的魅力🤩。

更多: 功能介绍.md工程目录 & 模块划分设计理念 & 发展路线

✈ 规划 & 发展路线

Shoulder 希望做一个整套的可复用的平台(PaaS),使用者只需要做做自己的业务即可。整体格局如下

  • Shoulder iPaaS 基础中间件环境 Shoulder 提供依赖中间件的Docker镜像或部署教程(如 数据库、消息队列、服务注册中心、任务调度中心、搜索引擎、报警与监控系统等)。
  • Shoulder Specific 软件系开发设计注意事项、落地方案和规范
  • Shoulder Framework 本项目,提供共性能力封装,减少代码冗余,降低系统开发维护成本。
  • Shoulder Platform 共性业务平台,提供 用户平台支付平台通知中心业务网关数据字典全局ID生产器 等基础、通用业务能力平台
  • Shoulder Platform SDK 以 sdk 形式方便业务层对接使用。

相关项目

项目 开源地址 说明
Shoulder Framework githubgitee 开发框架 / 在 Spring Boot Start 插件,结合软件优雅设计与开发最佳实践,增加常用的功能,助力高效开发。
Shoulder Platform githubgitee SaaS 开发平台,提供了基础通用能力,与具体业务无关
shoulder-framework-demo githubgitee 以简单的例子介绍 Shoulder 的使用
shoulder-plugins githubgitee Shoulder 提供的 maven插件,构建时扫描代码注释自动生成多语言翻译文件,从而提效
shoulder-lombok githubgitee lombok,额外支持 @SLog 注解,lombok风格省略 Shoulder 扩展的 Logger 代码
shoulder-lombok-idea-plugin githubgitee IDEA 插件,同 lombok-idea-plugin,额外支持shoulder-lombok 中的 @SLog
Shoulder iPaaS githubgitee iPaaS 平台,分享部署常见中间件步骤、如何自建监控系统、私有基础平台

releated_projects.png

📒 版本变更记录

当前版本为 0.8,更多见 CHANGELOG.MD

💗 贡献代码

欢迎各类型代码提交,不限于优化代码格式优化注释/JavaDoc修复 BUG新增功能 ,更多请参考 如何贡献代码

📩 反馈 or 联系我

感谢小伙伴们的 🌟Star🍴Fork🏁PR,欢迎使用 issuecn_lym@foxmail.com 交流,如 留下你的建议、期待的新功能等~

Shoulder 不求使用最广,而致力于成为使用体验最好的开发框架,您任何的使用需求、建议、想法都可以留下来与我们沟通,Shoulder 将与您一起思考攻克疑难,助天下的开发者更好更安心得使用技术助力业务腾飞!

问题排查指南

👨‍💼 关于作者

多次参与 Alibaba 核心系统重构与设计,主导过多次 D11 级别大促保障,欢迎技术交流与简历投递~

  • 该项目为作者在业余时间独立开发和维护的个人项目,非阿里巴巴官方产品。
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

🔥SpringBoot Web 插件,来跟随 shoulder 精通Spring Boot~ 展开 收起
Java 等 4 种语言
Apache-2.0
取消

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/ChinaLym/shoulder-framework.git
git@gitee.com:ChinaLym/shoulder-framework.git
ChinaLym
shoulder-framework
shoulder-framework
master

搜索帮助