{"id":31898299,"url":"https://github.com/qaiu/vxcore","last_synced_at":"2026-02-25T09:25:56.810Z","repository":{"id":318635106,"uuid":"1072109840","full_name":"qaiu/vxcore","owner":"qaiu","description":"一个基于 Vert.x 的现代化 Java 框架，提供类似 Spring Boot 的开发体验，集成了代码生成器、jOOQ DSL、WebSocket、反向代理等企业级功能。","archived":false,"fork":false,"pushed_at":"2026-01-24T05:10:37.000Z","size":1702,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-24T16:35:33.544Z","etag":null,"topics":["framework","java","jooq","vertx"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qaiu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-08T09:19:08.000Z","updated_at":"2026-01-24T05:10:41.000Z","dependencies_parsed_at":"2026-01-04T00:00:47.952Z","dependency_job_id":null,"html_url":"https://github.com/qaiu/vxcore","commit_stats":null,"previous_names":["qaiu/vxcore"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qaiu/vxcore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qaiu%2Fvxcore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qaiu%2Fvxcore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qaiu%2Fvxcore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qaiu%2Fvxcore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qaiu","download_url":"https://codeload.github.com/qaiu/vxcore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qaiu%2Fvxcore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29815868,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T05:36:42.804Z","status":"ssl_error","status_checked_at":"2026-02-25T05:36:31.934Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","java","jooq","vertx"],"created_at":"2025-10-13T11:58:34.688Z","updated_at":"2026-02-25T09:25:56.803Z","avatar_url":"https://github.com/qaiu.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VXCore\n\n一个基于 Vert.x 的现代化 Java 框架，提供类似 Spring Boot 的开发体验，集成了代码生成器、jOOQ DSL、WebSocket、反向代理等企业级功能。\n\n## 项目简介\n\nVXCore 是一个高性能、响应式的 Java 框架，专为构建现代化 Web 应用程序而设计。它结合了 Vert.x 的异步编程模型、jOOQ 的类型安全数据库操作、以及丰富的注解支持，提供了简洁而强大的开发体验。\n\n### 🎨 设计思想：简单而不失优雅\n\nVXCore 的设计哲学是\"**简单而不失优雅**\"：\n\n- **简单**: 降低学习成本，提供直观的 API 设计，让开发者能够快速上手\n- **优雅**: 在简单的基础上，提供强大的功能和良好的扩展性，满足复杂业务需求\n- **平衡**: 在简单性和功能性之间找到最佳平衡点，既不过度设计，也不功能缺失\n\n这一设计思想使 VXCore 既适合新手快速上手，也能满足专家级用户的复杂需求。\n\n## 🔄 最新更新\n\n### v1.2.0 (2026-02)\n- ✅ **DI 依赖注入修复**: ServiceRegistry 支持按类型查找，接口注入和具体类注入均正常工作\n- ✅ **注解包名修正**: `annotaions` → `annotations` 全项目统一修正\n- ✅ **AOP 切面框架**: 基于 Byte Buddy 的 @Aspect/@Before/@After 切面支持\n- ✅ **异常处理增强**: 内置全局异常处理器，统一 JSON 错误响应\n- ✅ **配置管理**: YAML 配置加载、合并、SharedData 访问\n- ✅ **路由注解增强**: 支持 {id} 路径变量自动转换、@RequestBody JSON 绑定\n- ✅ **全量文档验证**: 新增 vxcore-demo 项目（7 个子模块）验证所有文档示例\n\n详细问题报告请参考 [验证报告](vxcore-demo/ISSUES.md)\n\n## 🎯 核心特性\n\n### 🚀 高性能异步架构\n- **Vert.x 4.5+**: 基于事件驱动的异步非阻塞 I/O\n- **响应式编程**: 支持 Future、Promise、Observable\n- **高并发处理**: 单线程处理大量并发连接\n- **内存优化**: 零拷贝、对象池、连接池\n\n### 🔒 类型安全数据库操作\n- **jOOQ DSL**: 编译时类型检查，完全防止 SQL 注入\n- **Lambda 查询**: 类似 MyBatis-Plus 的 Lambda 表达式查询\n- **无参构造函数DAO**: 自动初始化，无需手动传递参数\n- **多数据源支持**: 支持动态数据源切换和事务隔离\n- **批量操作**: 高性能批量 CRUD 操作\n\n### 🌐 Web 开发支持\n- **注解式路由**: 类似 Spring MVC 的 `@RouteMapping` 注解\n- **参数绑定**: 支持方法重载、类型转换、自定义转换器\n- **异常处理**: 全局和局部异常处理机制\n- **WebSocket**: 注解式 WebSocket 路由和代理支持\n\n### 🔧 企业级功能\n- **代码生成器**: 根据数据库表结构自动生成三层架构代码\n- **反向代理**: 支持 HTTP/WebSocket 代理，类似 Nginx\n- **配置管理**: YAML 配置，支持 IDE 自动提示和验证\n- **SPI 扩展**: 支持第三方数据库驱动和功能扩展\n- **监控审计**: SQL 审计、性能监控、错误追踪\n\n### 📦 模块化设计\n- **core**: 核心框架模块（路由、注解、DI、AOP、配置）\n- **core-database**: 数据库操作模块（DSL、Lambda、多数据源）\n- **core-generator**: 代码生成器模块（根据数据库表结构生成代码）\n- **core-example**: 示例和演示模块\n- **vxcore-demo**: 文档验证项目（7 个独立子模块）\n\n## 📁 项目结构\n\n```\nvxcore/\n├── core/                           # 核心框架模块\n│   ├── src/main/java/             # 核心 Java 源码\n│   │   ├── cn/qaiu/vx/core/       # 核心包\n│   │   │   ├── annotations/        # 注解定义\n│   │   │   ├── handlerfactory/    # 处理器工厂\n│   │   │   ├── proxy/             # 反向代理\n│   │   │   ├── util/              # 工具类\n│   │   │   └── verticle/          # Verticle 实现\n│   │   └── resources/             # 资源文件\n│   ├── src/test/java/             # 测试代码\n│   └── pom.xml                    # 核心模块配置\n├── core-database/                 # 数据库操作模块\n│   ├── src/main/java/             # 数据库相关源码\n│   │   ├── cn/qaiu/db/            # 数据库包\n│   │   │   ├── dsl/               # DSL 框架\n│   │   │   │   ├── lambda/        # Lambda 查询\n│   │   │   │   └── core/          # 核心组件\n│   │   │   ├── datasource/        # 多数据源支持\n│   │   │   └── spi/               # SPI 扩展\n│   │   └── resources/             # 资源文件\n│   ├── src/test/java/             # 测试代码\n│   ├── docs/                      # 文档\n│   └── pom.xml                    # 数据库模块配置\n├── core-example/                  # 示例模块\n│   ├── src/main/java/             # 示例代码\n│   ├── src/main/resources/        # 配置文件\n│   └── pom.xml                    # 示例模块配置\n├── docs/                          # 项目文档\n│   ├── README.md                  # 文档索引\n│   ├── VXCORE_OPTIMIZATION_PLAN.md # 优化计划\n│   └── *.md                       # 各种指南文档\n└── pom.xml                        # 根项目配置\n```\n\n## 🚀 快速开始\n\n### 📋 环境要求\n\n- **Java 17+**: 支持现代 Java 特性\n- **Maven 3.8+**: 现代化构建工具\n- **数据库**: H2/MySQL/PostgreSQL（可选）\n\n### 📦 Maven 依赖\n\nVXCore 已发布到 Maven 中央仓库，可直接在项目中引入：\n\n```xml\n\u003cproperties\u003e\n    \u003cvxcore.version\u003e1.2.0\u003c/vxcore.version\u003e\n\u003c/properties\u003e\n\n\u003cdependencies\u003e\n    \u003c!-- VXCore 核心模块 --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecn.qaiu\u003c/groupId\u003e\n        \u003cartifactId\u003ecore\u003c/artifactId\u003e\n        \u003cversion\u003e${vxcore.version}\u003c/version\u003e\n    \u003c/dependency\u003e\n    \n    \u003c!-- VXCore 数据库模块 --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecn.qaiu\u003c/groupId\u003e\n        \u003cartifactId\u003ecore-database\u003c/artifactId\u003e\n        \u003cversion\u003e${vxcore.version}\u003c/version\u003e\n    \u003c/dependency\u003e\n    \n    \u003c!-- VXCore 代码生成器（可选） --\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecn.qaiu\u003c/groupId\u003e\n        \u003cartifactId\u003ecore-generator\u003c/artifactId\u003e\n        \u003cversion\u003e${vxcore.version}\u003c/version\u003e\n        \u003cscope\u003eprovided\u003c/scope\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n### ⚡ 5分钟快速上手\n\n#### 1. 创建 Maven 项目或克隆源码\n\n**方式一：使用 Maven 依赖（推荐）**\n```bash\n# 创建新的 Maven 项目\nmvn archetype:generate -DgroupId=com.example -DartifactId=my-app\n# 在 pom.xml 中添加上述依赖\n```\n\n**方式二：克隆源码**\n\n```bash\ngit clone https://github.com/qaiu/vxcore.git\ncd vxcore\nmvn clean compile\n```\n\n#### 2. 创建简单的 Web 服务\n\n```java\n@RouteHandler(\"/api\")\npublic class UserController {\n    \n    @RouteMapping(value = \"/hello\", method = RouteMethod.GET)\n    public Future\u003cJsonResult\u003cString\u003e\u003e hello(@RequestParam(\"name\") String name) {\n        return Future.succeededFuture(\n            JsonResult.data(\"Hello, \" + name + \"!\")\n        );\n    }\n    \n    @RouteMapping(value = \"/users\", method = RouteMethod.POST)\n    public Future\u003cJsonResult\u003cUser\u003e\u003e createUser(@RequestBody User user) {\n        return userService.createUser(user)\n            .map(createdUser -\u003e JsonResult.data(createdUser));\n    }\n}\n```\n\n#### 3. 使用无参构造函数DAO（推荐）\n\n```java\n@DdlTable(\"users\")\npublic class User extends BaseEntity {\n    @DdlColumn(\"user_name\")\n    private String name;\n    \n    @DdlColumn(\"user_email\")\n    private String email;\n    \n    // getters and setters...\n}\n\n// 最简单的DAO - 连构造函数都没有\npublic class UserDao extends AbstractDao\u003cUser, Long\u003e {\n    // 完全空的类，框架自动处理所有初始化\n    // 1. 自动通过泛型获取User类型\n    // 2. 自动初始化SQL执行器\n    // 3. 自动获取表名和主键信息\n}\n\n// 使用方式\nUserDao userDao = new UserDao(); // 无需传递任何参数！\n\n// Lambda 查询示例\npublic class UserService {\n    \n    public Future\u003cList\u003cUser\u003e\u003e findActiveUsers() {\n        return userDao.lambdaQuery()\n            .eq(User::getStatus, \"ACTIVE\")\n            .like(User::getName, \"张%\")\n            .orderBy(User::getCreateTime, SortOrder.DESC)\n            .list();\n    }\n    \n    public Future\u003cList\u003cUser\u003e\u003e findUsersWithOrders() {\n        return userDao.lambdaQuery()\n            .leftJoin(Order.class, (user, order) -\u003e \n                user.getId().eq(order.getUserId()))\n            .eq(User::getStatus, \"ACTIVE\")\n            .list();\n    }\n}\n```\n\n#### 4. 配置多数据源\n\n```yaml\n# application.yml\ndatasources:\n  primary:\n    url: jdbc:mysql://localhost:3306/main_db\n    username: root\n    password: password\n    driver: com.mysql.cj.jdbc.Driver\n  secondary:\n    url: jdbc:postgresql://localhost:5432/log_db\n    username: postgres\n    password: password\n    driver: org.postgresql.Driver\n```\n\n```java\n@DataSource(\"primary\")\npublic class UserDao extends AbstractDao\u003cUser\u003e {\n    \n    @DataSource(\"secondary\")\n    public Future\u003cList\u003cLog\u003e\u003e findUserLogs(Long userId) {\n        return logDao.lambdaQuery()\n            .eq(Log::getUserId, userId)\n            .list();\n    }\n}\n```\n\n#### 5. WebSocket 支持\n\n```java\n@WebSocketHandler(\"/ws/chat\")\npublic class ChatHandler {\n    \n    @OnOpen\n    public void onOpen(ServerWebSocket ws) {\n        System.out.println(\"用户连接: \" + ws.remoteAddress());\n    }\n    \n    @OnMessage\n    public void onMessage(String message, ServerWebSocket ws) {\n        // 广播消息给所有连接的客户端\n        ws.writeTextMessage(\"Echo: \" + message);\n    }\n    \n    @OnClose\n    public void onClose(ServerWebSocket ws) {\n        System.out.println(\"用户断开: \" + ws.remoteAddress());\n    }\n}\n```\n\n## 🗄️ 支持的数据库\n\n### H2 Database\n- **用途**: 开发、测试、演示\n- **特点**: 内存数据库，零配置\n- **优势**: 快速启动，支持完整 SQL 语法\n\n### MySQL\n- **用途**: 生产环境推荐\n- **特点**: 高性能、高可用\n- **优势**: 支持事务、索引、复杂查询\n\n### PostgreSQL\n- **用途**: 企业级应用\n- **特点**: 功能丰富、标准兼容\n- **优势**: 支持 JSON、数组、自定义类型\n\n## 📚 详细文档\n\n### 📖 核心文档\n- [项目概述](docs/01-overview.md) - 项目介绍和核心特性\n- [快速开始](docs/02-quick-start.md) - 5分钟快速上手\n- [安装配置](docs/03-installation.md) - 环境配置和依赖管理\n\n### 🏗️ 架构设计\n- [系统架构](docs/04-architecture.md) - 整体架构设计\n- [开发指南](docs/05-developer-guide.md) - 开发者指南和核心组件详解\n\n### 💻 开发指南\n- [Lambda查询](core-database/docs/lambda/LAMBDA_QUERY_GUIDE.md) - Lambda查询详解\n- [多数据源](core-database/docs/MULTI_DATASOURCE_GUIDE.md) - 多数据源配置和使用\n- [项目结构](core-database/docs/PROJECT_STRUCTURE.md) - 数据库模块项目结构\n\n### 🌐 Web开发\n- [WebSocket指南](docs/WEBSOCKET_GUIDE.md) - WebSocket开发指南\n- [反向代理](docs/WEBSOCKET_PROXY_GUIDE.md) - 反向代理配置\n- [路由注解](docs/08-routing-annotations.md) - 路由注解使用\n\n### 🔧 高级特性\n- [代码生成器](docs/12-code-generator.md) - 代码生成器使用指南\n- [异常处理](docs/09-exception-handling.md) - 异常处理机制\n- [配置管理](docs/10-configuration.md) - 配置管理详解\n- [集成测试](docs/INTEGRATION_TEST_GUIDE.md) - 集成测试指南\n- [Git工作流](docs/29-git-workflow.md) - Git工作流规范\n\n## 🧪 测试\n\n项目包含完整的测试套件，覆盖率达到 80%+：\n\n```bash\n# 运行所有测试\nmvn test\n\n# 运行特定模块测试\nmvn test -pl core\nmvn test -pl core-database\n\n# 运行特定数据库测试\nmvn test -Dtest=*H2*\nmvn test -Dtest=*MySQL*\nmvn test -Dtest=*PostgreSQL*\n\n# 生成测试覆盖率报告\nmvn test jacoco:report\n```\n\n## 📊 性能特性\n\n### 🚀 高性能指标\n- **并发处理**: 支持数万并发连接\n- **响应时间**: 微秒级响应延迟\n- **内存使用**: 低内存占用，高效对象池\n- **CPU 利用率**: 单线程事件循环，CPU 友好\n\n### 📈 基准测试\n- **HTTP 请求**: 50,000+ QPS\n- **WebSocket 连接**: 10,000+ 并发连接\n- **数据库查询**: 10,000+ QPS\n- **批量操作**: 1000 条记录 \u003c 100ms\n\n## 🤝 贡献指南\n\n我们欢迎社区贡献！请查看：\n\n### 📋 贡献流程\n1. **Fork 项目** - 点击右上角 Fork 按钮\n2. **创建分支** - `git checkout -b feature/AmazingFeature`\n3. **提交更改** - `git commit -m 'Add some AmazingFeature'`\n4. **推送分支** - `git push origin feature/AmazingFeature`\n5. **创建 PR** - 在 GitHub 上创建 Pull Request\n\n### 📝 代码规范\n- **Java 规范**: 遵循阿里巴巴 Java 开发规范\n- **注释要求**: 所有 public 方法必须有 JavaDoc\n- **测试要求**: 新功能必须包含单元测试\n- **提交信息**: 使用清晰的提交信息\n\n### 🧪 测试要求\n- **覆盖率**: 新代码测试覆盖率 \u003e 80%\n- **测试类型**: 单元测试 + 集成测试\n- **测试数据**: 使用 H2 内存数据库\n\n## 📄 许可证\n\n本项目采用 **MIT 许可证** - 查看 [LICENSE](LICENSE) 文件了解详情。\n\n## 📞 联系方式\n\n- **作者**: QAIU\n- **邮箱**: qaiu@qq.com\n- **网站**: https://qaiu.top\n- **GitHub**: https://github.com/qaiu\n\n## 📈 版本历史\n\n### v1.2.0 (当前版本)\n- ✅ **DI 依赖注入修复**: ServiceRegistry 按类型查找，接口/具体类注入均可用\n- ✅ **注解包名修正**: `annotaions` → `annotations`，全项目统一修正\n- ✅ **AOP 切面框架**: 基于 Byte Buddy 的 @Aspect/@Before/@After/@AfterThrowing\n- ✅ **异常处理增强**: ExceptionHandlerManager 内置全局异常处理\n- ✅ **配置管理完善**: YAML 合并加载、SharedData 配置访问\n- ✅ **路由增强**: {id} 路径变量自动转换、@RequestBody/@RequestParam 完善\n- ✅ **vxcore-demo 验证项目**: 7 个独立子模块验证全部文档示例\n\n### v1.1.0\n- ✅ **无参构造函数DAO**: 自动初始化，无需手动传递参数\n- ✅ **代码生成器**: 根据数据库表结构自动生成三层架构代码\n- ✅ **Lambda 查询增强**: 支持 Join、聚合查询、子查询\n- ✅ **批量操作**: batchInsert、batchUpdate、batchDelete\n- ✅ **多数据源支持**: 动态数据源切换和事务隔离\n- ✅ **注解式路由**: 类似 Spring MVC 的路由注解\n- ✅ **WebSocket 支持**: 注解式 WebSocket 路由\n- ✅ **反向代理**: HTTP/WebSocket 代理支持\n- ✅ **配置元数据**: IDE 自动提示和验证\n- ✅ **SPI 扩展**: 支持第三方数据库驱动扩展\n\n### v1.0.0\n- ✅ 初始版本发布\n- ✅ 支持 H2、MySQL、PostgreSQL\n- ✅ 完整的 DSL 框架\n- ✅ 集成 jOOQ 支持\n\n## 🎯 未来规划\n\n### 近期 (v1.3.0)\n- 🔄 **@ControllerAdvice**: 全局异常处理器扫描注册\n- 🔄 **Jackson JavaTimeModule**: 自动注册 Java 8 时间类型支持\n- 🔄 **安全框架完善**: JWT 认证 + @Authenticated/@RequiresRoles\n- 🔄 **文档示例修正**: 统一 API 用法与文档描述\n\n### 长期规划\n- 📋 **微服务支持**: 服务发现、配置中心\n- 📋 **监控集成**: Prometheus、Grafana\n- 📋 **云原生**: Docker、Kubernetes 支持\n- 📋 **HTML 模板引擎**: 视图渲染支持\n\n---\n\n**🎯 VXCore - 让 Java Web 开发更简单、更高效、更现代！**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqaiu%2Fvxcore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqaiu%2Fvxcore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqaiu%2Fvxcore/lists"}