for microservice
一个从零实现的 Java 微服务框架,包含 IOC、MVC、JDBC、HTTP客户端、HTTP Server、定时任务、Event、终端应用、javafx、测试、其他第三方服务/框架支持等模块。 支持 JDK 17+ 运行,兼容 GraalVM Native Image。
| 项目 | 信息 |
|---|---|
| 版本号 | 0.6.3-RELEASE |
| 发布日期 | 2026-08 |
| Java 版本 | 17+ |
| 许可证 | Mulan PSL v2 |
| 模块化 | 全面支持 Java Platform Module System (JPMS) |
@BeanInject、@Inject、@Resource,其他自定义扩展)@Router、@HttpRouter、@RestRouter、@GetRouter、@PostRouter、@PutRouter、@DeleteRouter、@PatchRouter、@OptionsRouter、@TraceRouter、@HeadRouter、@RequestParameter、@BodyParameter、@CookieParameter、@HeadParameter、@InnerParameter、@MatrixParameter、@ParamParameter、@PathParameter、@QueryParameter、@SessionParameter、@Filter)@JdbcTransactional、@SqlRepository、@SqlEntity、@SqlColumn、@JdbcTransient)@DebbieTask,支持 fixedRate 和 cron)@EventBeanListener、EventMethodListener)@PropertiesConfiguration)@DebbieApplicationTest)DebbieModuleStarter SPI 注册,按 order() 升序启动。order 值越小越先启动。
| 模块 | ArtifactId | Order | 分类 | 说明 |
|-----------------|-------------------------|---------|---------------------------------|--------------------------------------------------------------------------------------------------|
| core | `debbie-core` | 0 | 核心模块 | 核心 IOC 容器、Bean 管理、配置、定时任务、Event、序列化 SPI 接口等,无任何我开发之外的第三方依赖 |
| | | | | |
| asm | `debbie-asm` | 1000 | 字节增强模块,第三方,可选 | ASM 字节码增强(Bean 代理),暂未完全实现 |
| | | | | |
| jdbc | `debbie-jdbc` | 200 | 核心模块 | JDBC 封装、数据源、ORM 实体映射、简单mock、简单jdbc连接池 |
| | | | | |
| hikari | `debbie-hikari` | 20001 | 线程池模块,第三方,可选 | HikariCP 连接池 |
| shardingsphere | `debbie-shardingsphere` | 20002 | 分库分表模块,第三方,可选 | ShardingSphere 分库分表 |
| druid | `debbie-druid` | 20003 | 线程池模块,第三方,可选 | Druid 连接池 |
| dbcp2 | `debbie-dbcp2` | 20004 | 线程池模块,第三方,可选 | Commons DBCP2 连接池 |
| c3p0 | `debbie-c3p0` | 20005 | 线程池模块,第三方,可选 | C3P0 连接池 |
| tomcat-jdbc | `debbie-tomcat` | 20006 | 线程池模块,第三方,可选 | Tomcat JDBC 连接池 |
| | | | | |
| mybatis | `debbie-mybatis` | 21001 | ORM模块,第三方,可选 | Mybatis 支持 |
| mybatis-plus | `debbie-mybatis-plus` | 21101 | ORM模块,第三方,可选 | MyBatis-Plus |
| | | | | |
| jedis | `debbie-jedis` | 22001 | redis模块,第三方,可选 | Jedis Redis 客户端 |
| redisson | `debbie-redisson` | 22002 | redis模块,第三方,可选 | Redisson |
| lettuce | `debbie-lettuce` | 22003 | redis模块,第三方,可选 | Lettuce Redis 客户端 |
| | | | | |
| mongo | `debbie-mongo` | 23001 | mongodb模块,第三方,可选 | MongoDB |
| | | | | |
| lucene | `debbie-lucene` | 29000 | 文本检索模块,第三方,可选 | Lucene 支持 |
| | | | | |
| mvc | `debbie-mvc` | 300 | 核心模块 | MVC 路由、请求参数处理、响应处理、过滤器,通过 SPI 加载序列化实现,无servlet |
| | | | | |
| server | `debbie-server` | 310 | 核心模块 | Server 抽象层,无servlet |
| aio | `debbie-aio` | 321 | 服务器模块,可选 | AIO HTTP 运行时,无servlet |
| netty | `debbie-netty` | 30001 | 服务器模块,第三方,可选 | Netty 服务器,无servlet |
| undertow | `debbie-undertow` | 30002 | 服务器模块,第三方,可选 | Undertow 服务器,无servlet |
| tomcat | `debbie-tomcat` | 30004 | 服务器模块,第三方,可选 | Tomcat Servlet 容器 |
| | | | | |
| servlet | `debbie-servlet` | 31000 | JakaraEE模块,第三方,可选 | Servlet 兼容层 |
| | | | | |
| httpclient | `debbie-httpclient` | 311 | Debbie核心模块 | HTTP 客户端(基于 MVC 内核) |
| | | | | |
| dubbo | `debbie-dubbo` | 31100 | RPC模块,第三方,可选 | Dubbo RPC |
| grpc-server | `debbie-grpc-server` | 31120 | RPC模块,第三方,可选 | gRPC 服务端 |
| grpc-client | `debbie-grpc-client` | 31121 | RPC模块,第三方,可选 | gRPC 客户端 |
| | | | | |
| kafka | `debbie-kafka` | 31130 | 消息队列模块,第三方,可选 | 消息队列,Kafka 支持 |
| pulsar | `debbie-pulsar` | 31131 | 消息队列模块,第三方,可选 | Pulsar 消息队列 |
| rocketmq | `debbie-rocketMq` | 31132 | 消息队列模块,第三方,可选 | RocketMQ 消息队列 |
| rabbitmq | `debbie-rabbitMq` | 31133 | 消息队列模块,第三方,可选 | RabbitMQ 消息队列 |
| activemq | `debbie-activeMq` | 31134 | 消息队列模块,第三方,可选 | ActiveMQ 消息队列 |
| | | | | |
| json | `debbie-json` | 400 | JSON模块,可选 | 自研 JSON 解析器,提供 `JsonHelper` SPI 实现(无第三方依赖) |
| xml | `debbie-xml` | 401 | XML模块,可选 | 自研 XML 解析器 |
| yaml | `debbie-yaml` | 402 | YAML模块,可选 | 自研 YAML 解析器 |
| jackson | `debbie-jackson` | 40001 | JSON/XML/YAML模块,第三方,可选 | JSON/XML/YAML 序列化/反序列化,Jackson实现,提供 `JsonHelper`/`XmlHelper` SPI 实现 |
| gson | `debbie-gson` | 40002 | JSON模块,第三方,可选 | JSON 序列化/反序列化,Google Gson实现,提供 `JsonHelper` SPI 实现 |
| fastjson2 | `debbie-fastjson2` | 40003 | JSON模块,第三方,可选 | JSON 序列化/反序列化,Alibaba fastjson2实现,提供 `JsonHelper` SPI 实现 |
| fury | `debbie-fastjson2` | 40003 | JSON模块,第三方,可选 | JSON 序列化/反序列化,Alibaba fastjson2实现,提供 `JsonHelper` SPI 实现 |
| | | | | |
| agent | `debbie-agent` | 500 | 核心模块 | Java Agent |
| | | | | |
| console | `debbie-console` | 600 | Debbie核心模块 | 控制台 支持 |
| | | | | |
| test | `debbie-test` | 6660 | 测试模块,第三方,可选 | 测试框架Junit5 支持 |
| | | | | |
| javafx | `debbie-javafx` | 7000 | JavaFx模块,第三方,可选 | 桌面应用,JavaFx 支持 |
| | | | | |
| metrics | `debbie-metrics` | 8000 | 告警模块,第三方,可选 | 第三方告警 支持 |
| | | | | |
| freemark | `debbie-freemark` | 90000 | 模板引擎模块,第三方,可选 | 模板引擎,freemark 支持 |
| thymeleaf | `debbie-thymeleaf` | 90001 | 模板引擎模块,第三方,可选 | Thymeleaf 模板引擎 |
| | | | | |
| swagger | `debbie-swagger` | 93000 | API管理模块,第三方,可选 | Swagger/OpenAPI 文档,swagger 支持 |
| | | | | |
| quartz | `debbie-quartz` | 100000 | 定时任务模块,第三方,可选 | quartz框架支持,定时任务 |
| | | | | |
| zookeeper | `debbie-zookeeper` | 131100 | zookeepr模块,第三方,可选 | ZooKeeper集成 |
| | | | | |
| mail | `debbie-mail` | 131110 | 邮件模块,第三方,可选 | JavaMail 邮件 |
| | | | | |
| spring | `debbie-spring` | 200000 | 框架包装模块,第三方,可选 | Spring 生态兼容 |
| | | | | |
| shiro | `debbie-shiro` | 300000 | 权限模块,第三方,可选 | Shiro 安全框架 |
| | | | | |
| bus | `debbie-bus` | 1010000 | 消息总线模块,第三方,可选 | 消息总线 |
| loadbalancer | `debbie-loadBalancer` | 1010001 | 负载均衡模块,第三方,可选 | 客户端负载均衡 |
| config | `debbie-config` | 1010002 | 配置中心,第三方,可选 | 配置中心客户端 |
| gateway | `debbie-gateway` | 1010003 | 网关模块,第三方,可选 | API 网关 |
| tracing | `debbie-tracing` | 1010008 | 链路追踪模块,第三方,可选 | 分布式链路追踪 |
| integration | `debbie-integration` | 1010009 | 集成编排模块,第三方,可选 | 集成编排 |
| circuit-breaker | `debbie-circuitBreaker` | 1010011 | 熔断器模块,第三方,可选 | 熔断器 |
| function | `debbie-function` | 1010012 | 函数式计算模块,第三方,可选 | 函数式计算 / Serverless |
| | | | | |
| sentinel | `debbie-sentinel` | 1310010 | 限流降级模块,第三方,可选 | Sentinel 限流降级 |
| nacos | `debbie-nacos` | 1320001 | 注册/配置中心模块,第三方,可选 | Nacos 注册/配置中心 |
| etcd | `debbie-etcd` | 1320002 | 注册/配置中心模块,第三方,可选 | etcd 注册/配置中心 |
| consul | `debbie-consul` | 1320004 | 注册中心,第三方,可选 | Consul 注册中心 |
| eureka | `debbie-eureka` | 1320005 | 注册中心,第三方,可选 | Eureka 注册中心 |
| seata | `debbie-seata` | 1320006 | 分布式事务模块,第三方,可选 | Seata 分布式事务 |
| | | | | |
| kubernetes | `debbie-kubernetes` | 2000001 | 平台支持模块,第三方,可选 | Kubernetes 集成 |
---
### debbie-cloud 模块说明
> `debbie-cloud` 是 Debbie 框架的第三方集成与云原生扩展项目,包含 `boot`(第三方框架/中间件适配)和 `cloud`(微服务云原生组件)两大子项目。
> 仓库地址:https://github.com/TruthBean/debbie-cloud
---
## 三、框架使用指南
### 3.1 快速开始
```java
import com.truthbean.debbie.boot.DebbieBootApplication;
import com.truthbean.debbie.boot.DebbieApplication;
@DebbieBootApplication
public class MyApplication {
public static void main(String[] args) {
DebbieApplication application = DebbieApplication.run(MyApplication.class, args);
}
}
import com.truthbean.debbie.bean.BeanComponent;
import com.truthbean.debbie.bean.BeanInject;
// 定义 Bean
@BeanComponent
public class UserService {
public String getUserName() {
return "Alice";
}
}
// 注入 Bean
@BeanComponent
public class UserController {
@BeanInject
private UserService userService;
public void printUser() {
System.out.println(userService.getUserName());
}
}
import com.truthbean.debbie.mvc.router.Router;
import com.truthbean.debbie.mvc.router.GetRouter;
import com.truthbean.debbie.mvc.router.PostRouter;
import com.truthbean.debbie.mvc.request.RequestParameter;
@Router
public class HelloController {
@GetRouter("/hello")
public String hello(@RequestParameter("name") String name) {
return "Hello, " + name + "!";
}
@PostRouter("/api/user")
public String createUser(@RequestParameter(value = "name", body = true) String name) {
return "Created user: " + name;
}
}
import com.truthbean.debbie.jdbc.annotation.SqlEntity;
import com.truthbean.debbie.jdbc.annotation.SqlColumn;
import com.truthbean.debbie.jdbc.annotation.SqlRepository;
// 实体类
@SqlEntity(table = "users")
public class User {
@SqlColumn(id = true)
private Long id;
@SqlColumn
private String name;
@SqlColumn
private String email;
// getters and setters...
}
// 数据访问层
@SqlRepository
public class UserRepository {
@BeanInject
private DataSource dataSource;
public User findById(Long id) {
// 执行 SQL 查询
}
}
import com.truthbean.debbie.task.DebbieTask;
@BeanComponent
public class ScheduledTasks {
// 每 5 秒执行一次
@DebbieTask(fixedRate = 5000)
public void runEvery5Seconds() {
System.out.println("Task executed at " + System.currentTimeMillis());
}
// 延迟 10 秒后首次执行,之后每 5 秒执行一次
@DebbieTask(fixedRate = 5000, initialDelay = 10000)
public void runWithDelay() {
System.out.println("Delayed task executed");
}
// 使用 cron 表达式:每天中午 12:00 执行
@DebbieTask(cron = "0 0 12 * * ?")
public void runAtNoon() {
System.out.println("Noon task executed");
}
// 使用 7 字段 cron:仅在 2026 年,每月 1 号中午执行
@DebbieTask(cron = "0 0 12 1 * ? 2026")
public void runIn2026() {
System.out.println("Task executed in 2026");
}
}
Cron 表达式说明:
| 字段 | 必填 | 取值范围 | 特殊字符 |
|---|---|---|---|
| second | 是 | 0-59 | * - , / |
| minute | 是 | 0-59 | * - , / |
| hour | 是 | 0-23 | * - , / |
| dayOfMonth | 是 | 1-31 | * ? - , / |
| month | 是 | 1-12 | * - , / |
| dayOfWeek | 是 | 0-7 (0 和 7 都表示周日) | * ? - , / |
| year | 否 | 1970-2199 | * - , |
常用示例:
0 0 12 * * ? 每天中午 12:00
0 0/5 * * * ? 每 5 分钟
0 0/5 9-17 ? * 1-5 工作日上午 9 点到下午 5 点,每 5 分钟
0 0 0 1,15 * ? 每月 1 号和 15 号凌晨
0 0 0 1 1,4,7,10 ? 每季度第一天
0 0 12 1 * ? 2026-2028 仅在 2026-2028 年,每月 1 号中午
import com.truthbean.debbie.properties.PropertiesConfiguration;
@PropertiesConfiguration(prefix = "app")
public class AppConfig {
private String name;
private int port;
private String[] allowedOrigins;
// getters and setters...
}
配置文件 application.properties:
# 日志配置
logging.level.root=DEBUG
logging.level.com.truthbean=TRACE
# 服务器配置
debbie.server.port=8080
debbie.web.static-resources-mapping-location=/**=statics/
import com.truthbean.debbie.test.annotation.DebbieApplicationTest;
import com.truthbean.debbie.bean.BeanInject;
import org.junit.jupiter.api.Test;
@DebbieApplicationTest
public class UserServiceTest {
@BeanInject
private UserService userService;
@Test
void testGetUserName() {
String name = userService.getUserName();
// 验证结果
}
}
DefaultConnectionPool 改用 BlockingQueue 提升性能DebbieBeanCenter 拆分(1241 行职责过重)debbie-cloud 各模块完善与测试(gateway、tracing、loadbalancer 等)debbie-eureka / debbie-consul / debbie-etcd 注册中心适配完善debbie-config 配置中心客户端与 Nacos/etcd/Consul 联调debbie-circuit-breaker 与 Sentinel/Resilience4j 整合debbie-tracing 与 OpenTelemetry/Jaeger/Zipkin 整合debbie-gateway API 网关路由、过滤器链完善debbie-bus 消息总线与 Kafka/RabbitMQ/RocketMQ 联调debbie-integration 集成编排 DSL 设计debbie-function Serverless / 函数式计算抽象完善debbie-kubernetes K8s 集成(部署、服务发现、配置)