# tyylab-kestrel-framework **Repository Path**: tyylab/tyylab-kestrel-framework ## Basic Information - **Project Name**: tyylab-kestrel-framework - **Description**: Kestrel 是一个基于 Java 的框架,旨在简化 Spring 应用程序中 Feign 客户端和 Web 控制器的生成。它通过动态生成代码来减少样板代码的数量,并提供了一种声明式的方式来定义 API 接口及其对应的实现。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-06-23 - **Last Updated**: 2026-04-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kestrel Framework Kestrel 是一个基于 Java 的框架,旨在简化 Spring 应用程序中 Feign 客户端和 Web 控制器的生成。它通过动态生成代码来减少样板代码的数量,并提供了一种声明式的方式来定义 API 接口及其对应的实现。 ## 特性 - **Feign 客户端生成**:自动为服务消费者生成 Feign 客户端。 - **Web 控制器生成**:根据 API 接口自动生成 Spring Web 控制器。 - **注解支持**:提供自定义注解以启用和配置 Feign 客户端及 Web 服务器。 - **灵活配置**:允许通过配置类或属性文件进行定制化设置。 ## 模块结构 - `tyylab-kestrel-framework-core`: 核心功能模块,包含代码生成工具和通用工具类。 - `tyylab-kestrel-framework-spring-web`: 提供与 Spring Web 集成的功能,包括控制器生成。 - `tyylab-kestrel-framework-spring-rpc-feign`: 提供与 Feign RPC 集成的功能,用于服务间通信。 - `example`: 包含使用示例,展示如何在实际项目中使用 Kestrel。 ## 快速开始 ### 添加依赖 确保在您的项目的 `pom.xml` 中添加了必要的依赖项。对于使用 Feign 的项目,您需要添加: ```xml com.tyylab.kestrel tyylab-kestrel-framework-spring-rpc-feign 版本号 ``` 对于使用 Web 控制器生成的项目,添加: ```xml com.tyylab.kestrel tyylab-kestrel-framework-spring-web 版本号 ``` ### 启用 Kestrel 功能 在您的 Spring Boot 应用程序主类上使用相应的注解来启用 Kestrel 功能。 #### 对于服务消费者(Feign 客户端) ```java @SpringBootApplication @EnableKestrelFeignClient(serviceName = "your-service-name", apiBasePackages = {"your.api.package"}) public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } } ``` #### 对于服务提供者(Web 控制器) ```java @SpringBootApplication @EnableKestrelServer(apiBasePackages = "your.api.package") public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } } ``` ### 创建 API 接口 定义一个接口并使用标准的 Spring MVC 注解来描述您的 API。 ```java public interface IHellowWorldApi { String sayHi(String name, int age); Object sayHi2(String name, int age); } ``` ### 实现 API 接口 创建接口的实现类,并将其注册为 Spring Bean。 ```java @Service public class HellowWorldApiImpl implements IHellowWorldApi { @Override public String sayHi(String name, int age) { return "Hello, " + name + "! You are " + age + " years old."; } @Override public Object sayHi2(String name, int age) { // 实现细节 } } ``` ### 运行应用程序 启动您的 Spring Boot 应用程序,Kestrel 将会自动为您生成所需的客户端或控制器代码。 ## 贡献指南 我们欢迎贡献!如果您有兴趣改进 Kestrel 或添加新特性,请遵循以下步骤: 1. Fork 仓库。 2. 创建新的分支。 3. 提交您的更改。 4. 发起 Pull Request。 请确保遵循项目的编码规范,并在提交前运行所有测试。 ## 许可证 本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。