组织介绍

总览

logo

简洁优雅 · 稳定高效 | 宁静致远 · 精益求精

Spring Boot 企业级微服务架构

Java Spring Boot SpringCloud Alibaba MySQL Redis Nacos


███    ██  ██████   ██████  ██████  ██      ███████ 
████   ██ ██    ██ ██    ██ ██   ██ ██      ██      
██ ██  ██ ██    ██ ██    ██ ██   ██ ██      █████   
██  ██ ██ ██    ██ ██    ██ ██   ██ ██      ██      
██   ████  ██████   ██████  ██████  ███████ ███████ 
                                                    

设计理念

Noodle Framework的理念是打造基于DDD的安全开发框架,提供微服务一站式解决方案,容器优先/兼容SpringService Mesh的框架、最佳实践及DevOps标准化流程。

noodle-framework = 基于DDD设计和开发 + 自带可治理的错误体系 + 扩展主流微服务框架 + 标准化DevOps流程

  • DDD : 基于DDD模式设计和开发
  • 安全 : 安全行业工具支持及安全项目开发约束
  • 效率 : 提升一倍以上的开发效率
  • 规范 : 遵循公司及业界技术规范
  • API管理和编排 : 业务聚合及协议转换

概述

Noodle Boot Framework是一个基于Spring Boot的开发框架,专注于简化和加速企业级应用程序的开发过程。它提供了一系列功能强大的模块和starter,帮助开发者快速集成常见组件和实现复杂的业务需求。

主要特点

这个框架总体上提供了一套完整的解决方案,用于快速开发和扩展Spring Boot应用程序。以下是它的主要特点和优势:

  1. 模块化设计: 框架通过多个模块的方式组织功能,每个模块专注于特定的领域或需求,如数据访问、安全、服务集成等,使得开发者可以根据需求选择性集成,避免不必要的依赖。

  2. 功能丰富: 框架涵盖了从基础的工具类、数据访问、到复杂的文件存储、消息队列集成等多种功能。这些功能模块化设计使得在实际项目中可以灵活应用,提高开发效率。

  3. 与Spring Boot集成: 框架与Spring Boot深度集成,利用Spring Boot的自动配置和约定优于配置的原则,简化了配置和部署过程,减少了开发人员的工作量。

  4. 开箱即用: 框架提供了许多starter模块,这些模块已经预先配置好常见的组件和依赖项,开发者可以直接引入并开始使用,而无需从头编写配置和集成代码。

  5. 扩展性强: 框架支持自定义扩展,例如通过自定义starter模块或者在现有模块的基础上进行定制化开发,满足特定项目的需求,同时保留了良好的灵活性和可维护性。

  6. 文档和支持: 框架提供了详细的文档和示例,帮助开发者快速上手和解决问题。同时,如果遇到困难或需要帮助,可以借助文档的支持和开发者的互动获取技术支持。

总的来说,这个框架适用于需要快速开发、高效集成和可扩展性的项目,特别是基于Spring Boot的企业级应用程序开发。

使用场景

适用于需要快速开发、高效集成和灵活扩展的企业级应用项目。

示例

import org.noodle.framework.boot.AbstractApplicationBootBuilder;
import org.noodle.framework.boot.autoconfigure.NoodleBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.NoodleBeanNameGenerator;


@NoodleBootApplication
@ComponentScan(nameGenerator = NoodleBeanNameGenerator.class,basePackages = {"org.noodle.framework.examples"})
public class Application extends AbstractApplicationBootBuilder {

    public static void main(final String[] args) {
        Application noodleBootApplicationExample = new Application();
        noodleBootApplicationExample.setTimezone("GMT+08");
        //noodleBootApplicationExample.setAllowCircularReferences(true);
        noodleBootApplicationExample.run(args);
    }

     // 其他配置和组件注入
}

通过以上结构和要点,可以清晰地介绍框架的核心特点和优势,为读者提供了全面的了解和入门指南。

功能特性

一个基于Spring Boot实现的脚手架。所实现功能如下:

  • 支持SPI机制扩展
  • 支持web参数格式化处理,自动处理蛇形与驼峰映射转换
  • 支持异步任务执行器自动装配
  • 支持ehcacheManager缓存自动装配
  • 支持UTF-8编码处理机制自动装配
  • 支持跨域请求自动装配
  • 支持统一异常定义
  • 支持请求及响应日志记录
  • web参数校验
  • 支持多语言(国际化)
  • 敏感配置信息支持加密,表隐私字段加解密(支持多秘钥)
  • 支持mybatis-plus、tk-myabtis自定装配,自动检查创建数据库、分页插件自动识别注册
  • 支持多数据源、分布式事物、支持数据权限
  • 支持国产数据库适配,flyway支持DM扩展插件
  • 支持6.X版本的elasticsearch自动装配、支持基于官方的 Elasticsearch API 自动装配
  • 支持Elasticsearch数据脚本迁移工具,工作方式与Flyway类似
  • 支持Kafka 通过配置方式自动创建主题功能
  • 文件存储适配,目前支持:minio、七牛、阿里云、腾讯云、华为云、AWS的文件存储服务
  • 支持Quartz 定时任务
  • 支持XSS攻击防护,增加SPI扩展机制,可以自定义过滤策略
  • 支持策略模式扩展自动装配
  • 支持状态机
  • 支持事件总线
  • 支持Gateway 网关模块自动装配插件
  • 支持规则引擎,数据解析(Data Parsing)数据格式转换
  • 插件装配,可以针对系统初始化做一些业务处理,也可以停止系统时做相关业务处理,调用业务方法时扩展了前置处理器、后置处理器方便业务灵活扩展组装各类业务插件
  • Feign调用SSL证书认证扩展

功能图谱

模块 核心功能说明 实现 其它说明
noodle-boot-dependencies 依赖管理组件,管理所有依赖的版本 --
noodle-boot-starter-spi SPI 插件加载、扩展
noodle-common 工具类以及整体架构一些规范性定义 --
noodle-boot-starter web参数格式化处理、异步任务执行器、跨域请求、统一异常定义、求及响应日志记录、web参数校验等Spring工厂以及一些相关工具类、配置二次处理、一些运行机制规范定义 --
noodle-boot-starter-actuator 系统健康检查 --
noodle-boot-starter-data-jdbc 数据连接池配置,支持数据库检查自动创建、分布式事物自动识别 --
noodle-boot-starter-mybatis-plus mybatis-plus 扩展模块,支持自动创建数据库、多数据源、分布式事物、分页插件自动识别注册 --
noodle-boot-starter-mybatis-mapper tk.mybatis 扩展模块,支持自动创建数据库、多数据源、分布式事物、分页插件自动识别注册 --
noodle-boot-starter-datascope 数据权限 --
noodle-boot-starter-xcola 策略模式扩展自动装配 --
noodle-boot-starter-file-storage 文件存储适配,目前支持:minio、七牛、阿里云、腾讯云、华为云、AWS的文件存储服务 支持本地、FTP存储
noodle-boot-starter-minio minio文件上传 支持国密加密存储、存储规则(DATE、HASHCODE)
noodle-boot-starter-i18n 国际化基础组件
noodle-boot-starter-data-elasticsearch-6.x 支持6.X版本的elasticsearch自动装配 解决低版本ES适配高版本Spring Boot
noodle-boot-starter-elasticsearch-client 支持基于官方的 Elasticsearch API 自动装配 2.7.x 版本已经引入了 ElasticsearchClient,并封装了新的客户端 ElasticsearchTemplate,但是并没有为其做自动装配
noodle-boot-starter-elasticsearch-migration ES 数据脚本管理工具,工作方式与 Flyway 类似 管理并跟踪Elasticsearch变更,支持Elasticsearch数据版本自动升级
noodle-boot-starter-flywaydb-plugin Flyway国产数据库适配 flyway支持DM扩展插件
noodle-boot-starter-kafka Kafka主题管理 支持kafka 通过配置方式自动创建主题功能
noodle-boot-starter-statemachine 状态机 管理复杂状态流转
noodle-boot-starter-data-parsing 规则引擎,数据解析(Data Parsing)数据格式转换 处理字段自定义映射解析,规则执行
noodle-boot-starter-data-plugins 插件装配,可以针对系统初始化做一些业务处理,也可以停止系统时做相关业务处理,调用业务方法时扩展了前置处理器、后置处理器方便业务灵活扩展组装各类业务插件
noodle-boot-starter-quartz Quartz定时任务
noodle-boot-starter-xss xss攻击防护 增加SPI扩展机制,可以自定义过滤策略
noodle-boot-starter-event 事件总线模块
noodle-boot-starter-validation 参数校验扩展
noodle-boot-starter-sign 签名验证
noodle-boot-starter-trace 基于Spring AOP的应用程序运行轨迹追踪记录框架模块
noodle-boot-starter-gateway Gateway 网关模块 文档
noodle-boot-starter-openfeign feign调用SSL证书认证扩展 文档

详细结构

|- framework
|-  |- noodle-boot-dependencies                         -- 依赖管理组件,管理所有依赖的版本
|-  |- noodle-parent-starter                            -- 父Pom模块
|-  |- noodle-boot-test                                 -- 单元测试
|-  |- noodle-boot-starter-core                         -- 核心工具core
|-  |- noodle-boot-starter                              -- 核心组件,包含SpringBoot Web相关依赖
|-  |- noodle-boot-starter-actuator                     -- 系统健康检查
|-  |- noodle-plugins-boot-starter                      -- 插件扩展模块
|-  |- noodle-boot-starter-data-pagehelper              -- 分页插件
|-  |- noodle-boot-starter-data-jdbc                    -- jdbc
|-  |- noodle-boot-starter-data-elasticsearch-6.x       -- 支持6.X版本的elasticsearch自动装配
|-  |- noodle-boot-starter-data-solr                    -- solr 检索引擎
|-  |- noodle-boot-starter-data-csv                     -- csv 文件操作扩展
|-  |- noodle-boot-starter-data-easyexcel               -- 通过注解快速导入导出excle
|-  |- noodle-boot-starter-data-kettle                  -- etl 离线脚本转换
|-  |- noodle-boot-starter-aliyun-oss                   -- aliyun-oss 文件服务
|-  |- noodle-boot-starter-minio                        -- minio 文件服务
|-  |- noodle-boot-starter-httpclient                   -- httpclient 接口调用服务
|-  |- noodle-boot-starter-swagger2                     -- swagger2 接口文档
|-  |- noodle-boot-starter-geoip                        -- geoip
|-  |- noodle-boot-starter-xss                          -- xss 防注入相关
|-  |- noodle-boot-starter-i18n                         -- 国际化基础组件
|-  |- noodle-boot-starter-file-storage                 -- 文件上传 FTP or Local
|-  |- noodle-boot-starter-quartz                       -- quartz 基础组件
|-  |- noodle-boot-starter-script                       -- 实现在JVM中运行一些解释型语言,如Groovy、Python、JS、Ruby、SPEL等
|-  |- noodle-boot-starter-prometheus                   -- prometheus 集成
|-  |- noodle-boot-starter-factory                      -- factory 工厂模式
|-  |- noodle-boot-starter-xcola                        -- xcola 策略模式
|-  |- noodle-boot-starter-trace                        -- 基于Spring AOP的应用程序运行轨迹追踪记录框架
|-  |- noodle-boot-starter-mybatis-spring               -- mybatis-spring 扩展模块
|-  |- noodle-boot-starter-mybatis-plus                 -- mybatis-plus 扩展模块
|-  |- noodle-boot-starter-mybatis-mapper               -- tk.mybatis 扩展模块
|-  |- noodle-dynamic-datasource-starter                -- 多数据源
|-  |- noodle-boot-statemachine-core                    -- spring 状态机
|-  |- noodle-boot-starter-event                        -- 事件总线
|-  |- noodle-boot-starter-gateway-core                 -- gateway 核心core
|-  |- noodle-boot-starter-gateway                      -- gateway 网关
|-  |- noodle-boot-starter-spi                          -- spi 插件加载核心core
|-  |- noodle-boot-starter-statemachine                 -- 状态机
|-  |- noodle-boot-starter-datascope                    -- 数据权限
|-  |- noodle-boot-starter-kafka                        -- kafka 自动装配
|-  |- noodle-boot-starter-mybatis-encrypt-plugin       -- 敏感数据加解密以及数据脱敏mybatis插件
|-  |- noodle-boot-starter-data-parsing                 -- 数据解析(Data Parsing)数据格式转换
|-  |- noodle-boot-starter-data-plugins                 -- 插件配置文件,用于启用/禁用插件、注入插件参数等
|-  |- noodle-boot-starter-validation                   -- 参数校验扩展
|-  |- noodle-boot-starter-sign                         -- 签名验证
|-  |- noodle-boot-starter-elasticsearch-migration      -- ES 数据脚本迁移工具
|-  |- noodle-boot-starter-flywaydb-plugin              -- flyway插件扩展支持国产数据库
|-  |- noodle-boot-starter-data-elasticsearch-client    -- ES 客户端扩展封装,支持适配ES版本兼容
|-  |- noodle-boot-starter-elasticsearch-client         -- 自定义 starter 模块实现 ElasticsearchTemplate 的自动装配
|-  |- noodle-boot-starter-openfeign                    -- feign调用SSL证书认证扩展
|- assists                                              -- 框架辅助工具
|-  |- mybatis-plus-generator-maven-plugin              -- mybatis-plus 代码生成器
|-  |- mybatis-spring-generator-maven-plugin            -- mybatis 代码生成器
|-  |- doc-database-maven-plugin                        -- 数据库表结构文档 生成器
|-  |- elasticsearch-migration-maven-plugin             -- ES脚本 生成器
|- docs                                                 -- 文档
|- examples                                             -- 使用示例

与SpringBoot版本关系

总体原则,同步更新,与SpringBoot版本保持一致

noodle-boot spring-boot 开发状态
2.1.5-beta.2.7 2.7.2 完成
2.1.9-beta.1.3 2.7.8 完成
2.1.11-beta.1.9 2.7.10 完成
2.1.12-beta-1.8 2.7.10 完成
2.1.13-beta-1.4 2.7.10 完成
2.1.14-beta-1.4 2.7.12 完成
2.1.16-beta-1.8 2.7.13 完成
2.1.17-beta-2.7 2.7.14 完成
2.1.19-beta-1.6 2.7.16 完成
2.1.21-beta-1.9 2.7.18 完成
2.1.25-beta-2.0 2.7.18 完成
2.1.26-beta-3.2 2.7.18 完成
2.1.27-beta-1.7 2.7.18 完成

PS:绝大多数现代版本标识符是由两个或 三个数字段组成,以及可选的修饰符。通常 建议不要使用四个数字段的版本。

  • Alpha:不建议使用,主要是以实现软件功能为主,通常只在软件开发者内部交流,Bug较多;
  • Beta:该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除;
  • GA:General Availability,正式版本,官方推荐使用此版本,在国外都是用GA来说明release版本;
  • M:又叫里程碑版本,表示该版本较之前版本有功能上的重大更新;
  • PRE(不建议使用):预览版,内部测试版,主要是给开发人员和测试人员测试和找BUG用的;
  • Release:最终版本,Release不会以单词形式出现在软件封面上,取而代之的是符号®;
  • RC:该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几;
  • SNAPSHOT:快照版,可以稳定使用,且仍在继续改进版本。
  • SR.X:修正版,服务版本,当项目发布积累到一定程度,需要修复该版本中的某个错误后以此来命名,X表示数字

开源卫士漏洞分析

成就
3
Star
18K
Fork
成员(4)
472068 yangheqing admin 1684036832
yangheqing
545303 cubfe admin 1755316430
CubFE
沙漠孤狼
沈鸿运

搜索帮助