EST Framework 2.4.0
EST 是一个独立的现代 Java 框架,采用渐进式架构设计,支持企业级应用开发、AI 集成、微服务架构等多种场景。
- 版本: 2.4.0
- 项目: EST
- 作者: idcu
- 许可证: MIT License
🎉 版本 2.4.0 已发布
EST Framework 2.4.0 已于2026-03-10正式发布!这是一个里程碑式的版本,聚焦于生态系统建设、云原生增强、多语言支持和可观测性完善。
主要亮点
- 🌱 生态系统建设 - 完整的插件市场和第三方模块认证体系
- ☁️ 云原生增强 - Serverless支持完善、微服务治理、可观测性
- 🌐 多语言支持 - Kotlin原生支持、gRPC支持、Python/Go/TypeScript SDK
- 📊 可观测性完善 - Prometheus/ELK/Zipkin/Jaeger集成
- ✅ 完整的发布准备 - 文档齐全,SDK发布就绪
快速开始
<dependency> <groupId>ltd.idcu</groupId> <artifactId>est-core</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>ltd.idcu</groupId> <artifactId>est-util-common</artifactId> <version>2.4.0</version> </dependency>
详细信息
🎯 核心特性
🍎 模块化架构
- 分层设计: 核心层、基础层、模块层、应用层、工具层
- 按需引入: 想用哪个功能就引入哪个模块,不会有多余的代码
- API 与实现分离: 所有框架都采用 api/impl 分离的设计架构
🏵️ 独立设计
EST 框架不依赖任何第三方库,所有功能都是用 Java 标准库实现的。
- JSON处理、XML处理、YAML处理
- 加密、数据库访问、并发编程
- HTTP服务器、WebSocket支持
🎨 AI 原生支持
- LLM 大语言模型集成
- AI 助手对话
- 代码生成与优化
- 提示模板管理
🛡️ 完整的Web 框架
- RESTful API 支持
- 路由系统、中间件支持
- 模板渲染、会话管理
- CORS 跨域支持
🔒 企业级安全
- JWT、OAuth2、API Key 认证
- RBAC 权限管理
- 审计日志
- 多租户支持
🧰 丰富的功能组件
- 数据访问: JDBC、Redis、MongoDB、内存存储
- 缓存系统: 内存缓存、文件缓存、Redis 缓存
- 消息系统: Kafka、RabbitMQ、WebSocket、本地事件
- 任务调度: 固定频率、Cron 表达式
- 监控体系: JVM 监控、系统监控、分布式追踪
- 微服务: 断路器、服务发现、性能
- 工作流: 工作流引擎支持
👨💻 开发工具
- CLI 命令行工具
- 代码生成器
- 脚手架生成器
- 迁移工具
🖥️ 后台管理系统
- 基于 Vue 3 + Element Plus 的现代化 UI
- 用户、角色、菜单、部门、租户管理
- 操作日志、登录日志
- 系统监控、缓存监控
- 第三方集成(邮件、短信、OSS)
- AI 助手集成
🏗️ 部署支持
- Docker 容器化部署
- Docker Compose 编排
- Kubernetes 部署配置
- Service Mesh 支持
- CI/CD 流水线
🏵️ 快速开始
环境要求
- JDK 21 或更高版本(必须)
- Maven 3.6 或更高版本(用于构建项目)
- Node.js 18+(可选,用于前端开发)
构建项目
# 克隆项目 git clone https://github.com/idcu/est.git cd est # 构建所有模块 mvn clean install # 跳过测试(更快) mvn clean install -DskipTests
运行 Demo 应用
cd est-demo mvn exec:java -Dexec.mainClass="ltd.idcu.est.demo.EstDemoApplication"
访问 http://localhost:8080 即可看到 Demo 应用。
运行后台管理系统
# 启动后端 cd est-app/est-admin # (待实现) # 启动前端 cd est-admin-ui npm install npm run dev
访问 http://localhost:3000,使用账号 admin / admin123 登录。
📁 项目结构
est/
├── est-core/ # 核心层
│ ├── est-core-container/ # 依赖注入容器
│ ├── est-core-config/ # 配置管理
│ ├── est-core-lifecycle/ # 生命周期管理
│ ├── est-core-module/ # 模块管理
│ ├── est-core-aop/ # AOP支持
│ └── est-core-tx/ # 事务管理
├── est-base/ # 基础层
│ ├── est-utils/ # 工具模块(JSON、XML、IO等)
│ ├── est-patterns/ # 设计模式
│ ├── est-collection/ # 集合框架
│ └── est-test/ # 测试支持
├── est-modules/ # 功能模块层
│ ├── est-foundation/ # 基础设施(缓存、日志、事件、监控等)
│ ├── est-data-group/ # 数据访问(JDBC、Redis、MongoDB、工作流)
│ ├── est-security-group/ # 安全权限(认证、RBAC、审计)
│ ├── est-web-group/ # Web框架(路由、网关、会话、模板)
│ ├── est-ai-suite/ # AI套件(LLM、AI助手、AI配置)
│ ├── est-microservices/ # 微服务(断路器、服务发现、性能)
│ ├── est-integration-group/ # 集成(消息系统、第三方集成)
│ └── est-extensions/ # 扩展功能(热加载、插件、调度)
├── est-app/ # 应用层
│ ├── est-web/ # Web应用框架
│ ├── est-admin/ # 后台管理系统后端
│ └── est-console/ # 控制台应用
├── est-admin-ui/ # 后台管理系统前端(Vue 3)
├── est-tools/ # 工具层
│ ├── est-cli/ # 命令行工具
│ ├── est-codegen/ # 代码生成
│ ├── est-migration/ # 迁移工具
│ └── est-scaffold/ # 脚手架生成器
├── est-examples/ # 示例代码
│ ├── est-examples-basic/ # 基础示例
│ ├── est-examples-web/ # Web示例
│ ├── est-examples-ai/ # AI示例
│ ├── est-examples-advanced/ # 高级示例
│ ├── est-examples-features/ # 功能示例
│ ├── est-examples-microservices/ # 微服务示例
│ └── est-examples-graalvm/ # GraalVM示例
├── est-demo/ # 演示应用
├── deploy/ # 部署配置
│ ├── docker/ # Docker配置
│ ├── k8s/ # Kubernetes配置
│ └── servicemesh/ # Service Mesh配置
├── .github/ # GitHub Actions CI/CD
├── .config/ # 代码质量配置(Checkstyle、PMD、SpotBugs)
└── docs/ # 文档
📚 文档导航
入门指南
教程列表
模块文档
AI 开发
部署指南
API 参考
更多
📝 代码示例
第一个 Web 应用
import ltd.idcu.est.web.Web; import ltd.idcu.est.web.api.WebApplication; public class HelloWorld { public static void main(String[] args) { WebApplication app = Web.create("我的第一个应用", "1.0.0"); app.get("/", (req, res) -> res.send("Hello, World!")); app.get("/api/user/:name", (req, res) -> res.json(Map.of("name", req.getPathParam("name")))); app.run(8080); } }
使用缓存
import ltd.idcu.est.cache.memory.MemoryCache; import ltd.idcu.est.cache.api.Cache; Cache<String, Object> cache = new MemoryCache<>(); cache.put("key", "value"); Object value = cache.get("key");
使用日志
import ltd.idcu.est.logging.console.ConsoleLogs; import ltd.idcu.est.logging.api.Logger; Logger logger = ConsoleLogs.getLogger(HelloWorld.class); logger.info("这是一条日志");
使用事件总线
import ltd.idcu.est.event.local.LocalEventBus; import ltd.idcu.est.event.api.EventBus; EventBus eventBus = new LocalEventBus(); eventBus.subscribe(UserCreatedEvent.class, event -> logger.info("用户创建: {}", event.getUsername())); eventBus.publish(new UserCreatedEvent("张三"));
🤝 贡献
欢迎贡献代码,请查看项目文档了解如何参与项目开发。
📄 许可证
祝你使用 EST 框架愉快! 🎉