# lcgyl-framework **Repository Path**: lcgyl/lcgyl-framework ## Basic Information - **Project Name**: lcgyl-framework - **Description**: LCGYL Framework 是一个轻量级插件化框架,专注于模块化、可扩展性和高性能。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: develop - **Homepage**: https://framework.lcgylfamily.cn - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-11-27 - **Last Updated**: 2025-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LCGYL Framework 2.2 (Open Source) > **Learning, Coding, Growing, Yourself, Life** > **轻量级、零依赖的插件化 Java 框架** LCGYL Framework 2.2 是一个完全重构的轻量级插件化框架,专注于模块化、可扩展性和高性能。 [![Version](https://img.shields.io/badge/version-2.2.0-blue.svg)](https://gitee.com/lcgyl/lcgyl-framework) [![Java](https://img.shields.io/badge/Java-21-orange.svg)](https://openjdk.org/) [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![Build](https://img.shields.io/badge/build-passing-brightgreen.svg)](https://gitee.com/lcgyl/lcgyl-framework) [![Tests](https://img.shields.io/badge/tests-100%2B%20passed-brightgreen.svg)](framework/lcgyl-framework-core) --- ## ✨ 核心特性 ### 🔌 插件化架构 - **动态加载** - 运行时动态加载和卸载插件 - **热重载** - 支持插件热更新,无需重启应用 - **插件隔离** - 独立类加载器,避免依赖冲突 - **生命周期管理** - 完整的插件生命周期控制 ### 🎯 扩展点机制 - **灵活扩展** - 基于注解的扩展点定义和实现 - **多实现支持** - 单个扩展点支持多个实现 - **优先级排序** - 自动按优先级排序扩展实现 - **延迟加载** - 支持延迟初始化和单例模式 ### 💉 轻量级 IoC/DI - **零依赖** - 不依赖 Spring,纯 Java 实现 - **注解驱动** - @Component、@Inject、@Primary、@Lazy、@PostConstruct 注解支持 - **条件注册** - @Conditional 系列注解,按条件注册 Bean - **构造器注入** - 支持构造器注入和循环依赖检测 - **Bean 后处理** - BeanPostProcessor 支持自定义初始化逻辑 ### ⚙️ 配置管理 - **多源配置** - 支持 Properties 和 YAML 配置文件 - **Profile 支持** - 多环境配置(dev/test/prod) - **属性绑定** - @ConfigurationProperties 类型安全绑定 - **配置缓存** - 高性能配置缓存机制 ### 📡 事件总线 - **同步/异步** - 支持同步和异步事件处理 - **虚拟线程** - 基于 Java 21 虚拟线程 - **类型安全** - 强类型事件系统 - **高性能** - 优化的事件分发机制 ### 📊 v2.2.0 新特性 - **结构化日志** - StructuredLogger 流式 API,支持字段添加和多种输出格式 - **任务调度** - @ScheduledJob 注解,支持 Cron/固定延迟/固定速率 - **声明式 HTTP 客户端** - @HttpClient 注解,类似 Feign 的接口定义 - **分布式追踪增强** - TraceContext 链路上下文管理 --- ## 🚀 快速开始 ### 5 分钟上手 #### 1. 添加依赖 ```gradle repositories { mavenCentral() maven { url = uri("https://nexus.lcgylfamily.cn/repository/maven-public/") credentials { username = "jar-downloader" password = "B57opNMl64JSbe" } } } dependencies { implementation 'com.lcgyl:lcgyl-framework-core:2.2.0' implementation 'org.slf4j:slf4j-api:2.0.9' runtimeOnly 'ch.qos.logback:logback-classic:1.4.14' } ``` #### 2. 创建第一个插件 ```java public class HelloWorldPlugin implements Plugin { @Override public PluginMetadata getMetadata() { return PluginMetadata.builder() .pluginId("hello-world") .name("Hello World Plugin") .version("1.0.0") .description("我的第一个插件") .author("Your Name") .type(PluginType.COMMUNITY) .build(); } @Override public void initialize(PluginContext context) throws PluginException { context.getLogger().info("插件初始化完成"); } @Override public void start() throws PluginException { // 插件启动逻辑 } } ``` #### 3. 使用插件系统 ```java public class Application { public static void main(String[] args) throws Exception { // 创建插件管理器 File pluginDir = new File("plugins"); PluginManager pluginManager = new PluginManager(pluginDir); // 加载并启动插件 HelloWorldPlugin plugin = new HelloWorldPlugin(); pluginManager.loadAndStartPlugin(plugin, Map.of()); // 停止并卸载插件 pluginManager.stopAndUnloadPlugin("hello-world"); } } ``` 🎉 恭喜!你的第一个插件已经运行成功! --- ## 📁 项目结构 ### 新的插件化目录结构 ``` lcgyl-framework/ ├── framework/ # 2.0 核心框架 │ ├── lcgyl-framework-core/ # 核心插件化框架 │ └── lcgyl-framework-dependencies/ # 依赖管理 ├── plugins/ # 官方插件(按功能域分组) │ ├── data-access/ # 数据访问域 │ │ ├── lcgyl-mongo-plugin/ │ │ ├── lcgyl-redis-plugin/ │ │ └── lcgyl-cache-plugin/ │ ├── web/ # Web 域 │ │ ├── lcgyl-web-plugin/ │ │ └── lcgyl-web-reactive-plugin/ │ ├── messaging/ # 消息域 │ │ ├── lcgyl-mq-plugin/ │ │ └── lcgyl-mq-kafka-plugin/ │ ├── security/ # 安全域 │ │ ├── lcgyl-security-plugin/ │ │ └── lcgyl-security-jwt-plugin/ │ ├── monitoring/ # 监控域 │ │ └── lcgyl-trace-plugin/ │ └── integration/ # 集成域 │ ├── lcgyl-script-plugin/ │ └── lcgyl-lock-plugin/ ├── examples/ # 示例项目 │ ├── hello-world/ # Hello World 示例 │ └── web-app/ # Web 应用示例 ``` ### 核心优势 - ✅ **模块化设计** - 按功能域清晰分组 - ✅ **插件隔离** - 独立开发和部署 - ✅ **渐进式迁移** - 平滑从 1.x 升级到 2.0 - ✅ **生态完整** - 覆盖企业开发各个场景 --- ## 📦 插件生态 ### 🔧 核心框架 | 模块 | 说明 | 状态 | |------|------|------| | **lcgyl-framework-core** | 插件化核心框架 | ✅ 稳定 | | **lcgyl-framework-dependencies** | 依赖管理 BOM | ✅ 稳定 | ### 🔌 官方插件(开源) #### 数据访问域 | 插件 | 功能 | 文档 | |------|------|------| | **lcgyl-mongo-plugin** | MongoDB 支持 | [README](plugins/data-access/lcgyl-mongo-plugin/README.md) | | **lcgyl-redis-plugin** | Redis 支持 | [README](plugins/data-access/lcgyl-redis-plugin/README.md) | | **lcgyl-cache-plugin** | 缓存支持 | [README](plugins/data-access/lcgyl-cache-plugin/README.md) | #### Web 域 | 插件 | 功能 | 文档 | |------|------|------| | **lcgyl-web-plugin** | Web 增强 | [README](plugins/web/lcgyl-web-plugin/README.md) | | **lcgyl-web-reactive-plugin** | 响应式 Web | [README](plugins/web/lcgyl-web-reactive-plugin/README.md) | #### 安全域 | 插件 | 功能 | 文档 | |------|------|------| | **lcgyl-security-plugin** | 安全核心 | [README](plugins/security/lcgyl-security-plugin/README.md) | | **lcgyl-security-jwt-plugin** | JWT 认证 | [README](plugins/security/lcgyl-security-jwt-plugin/README.md) | --- ## 📚 文档中心 ### 🚀 快速开始 - [快速开始](docs/快速开始.md) - 5 分钟上手指南 - [插件开发指南](docs/guides/插件开发指南.md) - 完整的插件开发教程 - [模块使用指南](docs/guides/模块使用指南.md) - 模块使用说明 - [实际使用案例](docs/guides/实际使用案例.md) - 真实业务场景 - [示例项目](examples/) - 丰富的示例代码 ### 📖 核心文档 - [架构设计](docs/架构设计.md) - 2.0 架构详解 - [CHANGELOG](docs/CHANGELOG.md) - 版本更新日志 ### 🔧 开发指南 - [贡献指南](CONTRIBUTING.md) - 如何参与开发 - [开发规范手册](docs/specifications/开发规范手册.md) - 代码规范 --- ## 🎯 技术亮点 ### Java 21 新特性 - ✅ **Virtual Threads** - 高性能虚拟线程 - ✅ **Record Classes** - 简洁的数据类 - ✅ **Sealed Classes** - 受限继承 - ✅ **Pattern Matching** - 模式匹配 ### 设计模式 - ✅ **插件化架构** - 完整的插件生态 - ✅ **扩展点机制** - 灵活的扩展能力 - ✅ **依赖注入** - 轻量级 IoC 容器 - ✅ **事件驱动** - 高性能事件总线 ### 性能优化 - ✅ **零依赖设计** - JAR 包 < 300KB - ✅ **启动时间** - < 1 秒冷启动 - ✅ **内存优化** - 配置缓存和单例模式 - ✅ **并发优化** - 基于虚拟线程的高并发 --- ## 🤝 参与贡献 我们欢迎所有形式的贡献! ### 贡献方式 - 🐛 **报告 Bug** - [提交 Issue](https://gitee.com/lcgyl/lcgyl-framework/issues) - 💡 **功能建议** - [功能请求](https://gitee.com/lcgyl/lcgyl-framework/issues) - 📝 **改进文档** - 提交文档 PR - 🔧 **代码贡献** - 提交代码 PR ### 开发环境 - JDK 21+ - Gradle 8.0+ - Git 详细信息请参考 [贡献指南](CONTRIBUTING.md) --- ## 📄 许可证 本项目采用 [Apache License 2.0](LICENSE) 开源许可证。 --- ## 📞 联系我们 - 🌐 **官方网站** - [https://framework.lcgylfamily.cn](https://framework.lcgylfamily.cn) - 📧 **邮箱** - [lcgylupup@petalmail.com](mailto:lcgylupup@petalmail.com) - 🔗 **Gitee** - [https://gitee.com/lcgyl/lcgyl-framework](https://gitee.com/lcgyl/lcgyl-framework) --- ## ⭐ Star History 如果这个项目对你有帮助,请给我们一个 ! --- **当前版本**: 2.2.0 **最后更新**: 2025-12-05 **作者**: 青圭Y·Ceruleite