<img src="https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/readme/icon.png" align="right" />
[license-apache2.0]:https://www.apache.org/licenses/LICENSE-2.0.html
[github-action]:https://github.com/shiyindaxiaojie/eden-architect/actions
[sonarcloud-dashboard]:https://sonarcloud.io/dashboard?id=shiyindaxiaojie_eden-architect
# Eden* Architect
![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/readme/language-java-blue.svg) [![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/readme/license-apache2.0-red.svg)][license-apache2.0] [![](https://github.com/shiyindaxiaojie/eden-architect/workflows/build/badge.svg)][github-action] [![](https://sonarcloud.io/api/project_badges/measure?project=shiyindaxiaojie_eden-architect&metric=alert_status)][sonarcloud-dashboard]
Eden* Architect 致力于提供企业开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,您只需要添加一些注解和少量配置,就可以将
Spring Boot 应用接入微服务解决方案,通过中间件来迅速搭建分布式应用系统。
> 参考文档请查看 [WIKI](https://github.com/shiyindaxiaojie/eden-architect/wiki) 。
## 功能特性
* **依赖管理和插件封装**:统一管理依赖版本,解决依赖冲突问题,并提供常用插件的封装,让开发者减少在构建工具所消耗的时间。
* **常用组件集成与封装**:在 Spring 官方的基础上扩展,提供 `XxlJob`、`CAT`、`Netty`、`Arthas` 等组件的集成。
* **组件适配及扩展点**:针对现有主流技术点进行高级抽象,提供 `消息队列`、`缓存`、`短信平台`、`邮件`、`Excel` 等组件的动态适配。
* **通用场景解决方案**:提供`多级缓存`、`分布式锁`、`分布式唯一ID`、`幂等性处理`、`业务流程编排`、`最终一致性`、`全链路标记`
等解决方案工具。
## 组件构成
![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/eden-architect/component.png)
* **eden-dependencies**: 依赖管理组件,管理全局依赖的版本。
* **eden-parent**: 构建管理组件,封装常用插件,提供开箱即用的配置。
* **eden-commons**: 基础工具组件,基于 `Apache Commons`、`Google Guava` 、`HuTool` 扩展。
* **eden-extensions**: 扩展点组件,参考 `Dubbo` 扩展点改造,轻量级实现组件的扩展。
* **eden-cola**: `COLA` 组件,在 `COLA` 原生的基础上优化,完善了 `DDD` 领域模型、轻量级状态机、业务扩展点等组件。
* **eden-solutions**: 解决方案工具集,提供 `多级缓存`、`分布式锁`、`分布式唯一ID`、`数据去重`、`事件审计` 等场景的设计与实现。
* **eden-spring-framework**: 基础框架组件,支持自定义错误码、异常解析器。
* **eden-spring-data**: 数据存储组件,扩展了 `Mybatis`、`Redis`、`Flyway`、`Liquibase` 等组件。
* **eden-spring-security**: 授权认证组件,扩展了 `Spring Security OAuth2`、`Jwt`、`Shiro` 等组件。
* **eden-spring-integration**: 第三方集成组件,扩展了 `RocketMQ`、`Kafka`、`Netty`、`XxlJob` 等组件。
* **eden-spring-boot**: `Spring Boot`组件,根据实际的使用场景进行扩展。
* **eden-spring-boot-starters**: `Spring Boot`组件自动装配,对官方原生组件无感知增强,并扩充未集成的组件。
* **eden-spring-boot-test**: `Spring Boot`组件测试,对官方原生组件进行扩展。
* **eden-spring-cloud**: `Spring Cloud`组件,扩展了 `Nacos`、`Sentinel`、`Zookeeper` 等组件。
* **eden-spring-cloud-starters**: `Spring Cloud`组件自动装配,基于 `Spring Cloud Starters` 扩展。
* **eden-spring-test**: `Spring`测试组件,扩展了 `TestContainer`测试容器和嵌入式的中间件,单元测试。
## 如何构建
由于 `Spring Boot 2.4.x` 和 `Spring Boot 3.0.x` 在架构层面有很大的变更,因此我们采取跟 Spring Boot 版本号一致的分支:
* 2.4.x 分支适用于 `Spring Boot 2.4.x`,最低支持 JDK 1.8。
* 2.7.x 分支适用于 `Spring Boot 2.7.x`,最低支持 JDK 11。
* 3.0.x 分支适用于 `Spring Boot 3.0.x`,最低支持 JDK 17。
本项目默认使用 Maven 来构建,最快的使用方式是 `git clone` 到本地,然后执行以下命令:
```bash
./mvnw install -T 4C
```
执行完毕后,项目将被安装到本地 Maven 仓库。
## 如何使用
首先,在您的项目 `pom.xml` 的 `parent` 节点引用 `eden-parent` 父工程。
```xml
<parent>
<groupId>io.github.shiyindaxiaojie</groupId>
<artifactId>eden-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath/>
</parent>
```
然后,从 `eden-spring-boot-starters` 或者 `eden-spring-cloud-starters` 搜索您需要集成的组件。例如,集成
CAT,您可以在 `dependencies` 节点中添加以下内容:
```xml
<dependencies>
<dependency>
<groupId>io.github.shiyindaxiaojie</groupId>
<artifactId>eden-cat-spring-boot-starter</artifactId>
</dependency>
</dependencies>
```
> 为了减少不必要的依赖冲突,上述配置并没有指定具体的版本号,这个是因为 `eden-parent`
> 父工程默认导入了常用组件的依赖定义,大多数情况下不需要填写版本号,如果您不确定哪些组件是否需要填写版本号,可以查看下 `eden-dependencies`
> 组件。
在您的项目配置文件如 `application.yml` ,开启相关配置,大多数组件以 `xxx.enabled` 属性项作为开关。
````yaml
cat:
enabled: true # 默认关闭,请按需开启
trace-mode: true # 开启访问观测
support-out-trace-id: false # 允许异构子系统间透传链路ID
home: /tmp
servers: localhost # CAT 地址
tcp-port: 2280
http-port: 8080
````
启动您的项目,简单发起HTTP请求和RPC调用,您会发现,我们已经自动帮您完成了 CAT 的埋点。
![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/tracing.png)
## 代码演示
为了演示如何使用,我们提供了 3 种不同架构风格的样例
* 面向领域模型的 **COLA 架构**,代码实例可以查看 [eden-demo-cola](https://github.com/shiyindaxiaojie/eden-demo-cola)
* 面向数据模型的 **分层架构**,代码实例请查看 [eden-demo-layer](https://github.com/shiyindaxiaojie/eden-demo-layer)
* 面向单机模型的 **MVC 架构**,代码实例可以查看 [eden-demo-mvc](https://github.com/shiyindaxiaojie/eden-demo-mvc)
## 版本规范
项目的版本号格式为 `x.y.z` 的形式,其中 x 的数值类型为数字,从 0 开始取值,且不限于 0~9 这个范围。项目处于孵化器阶段时,第一位版本号固定使用
0,即版本号为 `0.x.x` 的格式。
* 孵化版本:0.0.1-SNAPSHOT
* 开发版本:1.0.0-SNAPSHOT
* 发布版本:1.0.0
版本迭代规则:
* 1.0.0 <> 1.0.1:兼容
* 1.0.0 <> 1.1.0:基本兼容
* 1.0.0 <> 2.0.0:不兼容
## 变更日志
请查阅 [CHANGELOG.md](https://github.com/shiyindaxiaojie/eden-architect/blob/main/CHANGELOG.md)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这里为你收集整理了关于毕业设计、课程设计可参考借鉴的资料一份,质量非常高,如果你投入时间去研究几天相信肯定对你有很大的帮助。到时候你会回来感谢我的。 本资源是经过本地编译测试、可打开、可运行的项目、文件或源码,可以用于毕业设计、课程设计的应用、参考和学习需求,请放心下载。 祝愿你在这个毕业设计项目中取得巨大进步,顺利毕业! 但还需强调一下,这些项目源码仅供学习和研究之用。在使用这些资源时,请务必遵守学术诚信原则和相关法律法规,不得将其用于任何商业目的或侵犯他人权益的行为。对于任何因使用本资源而导致的问题,包括但不限于数据丢失、系统崩溃或安全漏洞,风险自担哦! 如有侵权,请联系博主删除。
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计-自研应用框架开箱即用零侵入性接入遵循 Spring 官方的模块化管理保证业务依赖可选项.zip (1858个子文件)
org.ylzl.eden.dynamic.cache.builder.CacheBuilder 309B
com.dianping.cat.configuration.ClientConfigProvider 674B
org.apache.dubbo.rpc.cluster.Cluster 80B
org.apache.dubbo.rpc.cluster.filter.ClusterFilter 99B
mvnw.cmd 6KB
leaf_alloc.csv 72B
org.ylzl.eden.data.auditor.builder.DataDifferBuilder 187B
org.ylzl.eden.data.auditor.DataMasker 731B
org.ylzl.eden.data.auditor.builder.DataMaskerBuilder 270B
org.ylzl.eden.spring.data.jdbc.datasource.DataSourceResolver 84B
org.ylzl.eden.spring.data.jdbc.datasource.DataSourceUrlParser 239B
org.ylzl.eden.spring.data.jdbc.datasource.spi.DataSourceUrlParser 96B
org.ylzl.eden.extension.Demo 80B
org.ylzl.eden.extension.DemoInject 49B
.dockerignore 7B
.editorconfig 246B
org.ylzl.eden.spring.test.embedded.EmbeddedServer 207B
org.ylzl.eden.spring.boot.bootstrap.env.EnvironmentInboundParser 176B
org.ylzl.eden.spring.boot.bootstrap.env.EnvironmentInboundParser 73B
org.ylzl.eden.spring.boot.bootstrap.env.EnvironmentOutboundParser 82B
org.ylzl.eden.spring.boot.bootstrap.env.EnvironmentOutboundParser 82B
org.ylzl.eden.spring.boot.bootstrap.env.EnvironmentOutboundParser 74B
org.ylzl.eden.spring.boot.bootstrap.env.EnvironmentOutboundParser 73B
org.ylzl.eden.event.auditor.builder.EventSenderBuilder 243B
org.ylzl.eden.common.excel.builder.ExcelReaderBuilder 83B
org.ylzl.eden.common.excel.builder.ExcelWriterBuilder 83B
org.ylzl.eden.extension.ExtensionFactory 122B
spring.factories 989B
spring.factories 595B
spring.factories 595B
spring.factories 579B
spring.factories 516B
spring.factories 515B
spring.factories 452B
spring.factories 432B
spring.factories 413B
spring.factories 362B
spring.factories 345B
spring.factories 339B
spring.factories 262B
spring.factories 255B
spring.factories 240B
spring.factories 238B
spring.factories 238B
spring.factories 226B
spring.factories 208B
spring.factories 206B
spring.factories 196B
spring.factories 192B
spring.factories 191B
spring.factories 190B
spring.factories 178B
spring.factories 177B
spring.factories 172B
spring.factories 170B
spring.factories 170B
spring.factories 168B
spring.factories 167B
spring.factories 167B
spring.factories 162B
spring.factories 161B
spring.factories 161B
spring.factories 160B
spring.factories 159B
spring.factories 156B
spring.factories 155B
spring.factories 155B
spring.factories 155B
spring.factories 155B
spring.factories 154B
org.ylzl.eden.spring.framework.json.fastjson2.Fastjson2Filter 101B
org.ylzl.eden.spring.framework.json.fastjson.FastjsonFilter 99B
org.apache.dubbo.rpc.Filter 178B
org.apache.dubbo.rpc.Filter 170B
.gitattributes 3KB
.gitignore 665B
.gitignore 79B
.gitignore 79B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
.gitkeep 69B
共 1858 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19
资源评论
高校毕业设计
- 粉丝: 184
- 资源: 385
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功