当你只想“把接口跑起来”,却被复杂的脚手架、无尽的配置和笨重的依赖拖住脚步,那种挫败感很真实。JustSimple 不是来替代一切的“王炸框架”,它只做一件事:让 Java Web API 开发简单到离谱,帮你把时间花在真正重要的业务上。
产品简介与定位
JustSimple 是一个“非常非常简单”的 Java Web API 开发库,强调零门槛、极简配置和极速启动,特别适合本地测试、简单接口、快速原型、极限编程、临时模型等场景。你可以在一分钟之内把一个 API 跑起来,天然适配跨语言转码、脚本生成接口等快速落地需求。 版本与包体持续演进,当前核心模块 justsimple-core 可直接通过 Maven 引入使用1。
为什么是 JustSimple(而不是再多一层复杂)
轻量级: 无复杂上下文、无臃肿依赖,Java Web API 直接起飞,适合快速研发与小体量服务。
零学习曲线: 注解驱动的 Controller/Handler,直觉式的 Context 请求上下文。
一分钟上手: 几行代码、一句启动,让 Demo、原型、Webhook、回调接口即时可测。
跨语言友好: 脚本/其他语言生成 Java 代码后立刻可用,避免“框架绑架”。
可插拔配置: 通过实例池/启动参数注入 CORS、端口等配置;代码配置优先级更高,所见即所得。
实用生态: 支持 CORS、Form/JSON 解析、原始 FullHttpRequest 访问;适配多种简易服务场景。
一分钟上手(依赖、启动、路由)
引入依赖(Maven)
xml
<dependencies>
<dependency>
<groupId>org.mutantcat.justsimple</groupId>
<artifactId>justsimple-core</artifactId>
<version>1.0.20250408</version>
</dependency>
</dependencies>
以上为官方推荐的核心依赖版本,直接可用。
启动类(一句话启动)
java
import org.mutantcat.justsimple.Application;
import org.mutantcat.justsimple.annotation.JustSimple;
@JustSimple // 可指定 packageName 为基础包包名
public class Main {
public static void main(String[] args) {
// 一句话启动
Application.start(Main.class, args);
}
}
控制器与路由(GET/POST/表单/原始请求)
java
import org.mutantcat.justsimple.annotation.Controller;
import org.mutantcat.justsimple.annotation.Handler;
import org.mutantcat.justsimple.request.Context;
@Controller
public class MyController {
@Handler(path = "/hello")
public String hello(Context ctx) {
// 获得 GET 请求的 params 参数
List<String> name = ctx.getParam("name");
// 获得 POST 请求携带的 JSON
String json = ctx.getJson();
// 获得 POST 请求携带的表单
Map<String, Object> formData = ctx.getFormData();
// 直接访问原始 FullHttpRequest
FullHttpRequest fullHttpRequest = ctx.getFullHttpRequest();
return "Hello, JustSimple!";
}
}
实例与配置(Instance 池、CORS、端口)
定义与使用实例(注解即注册)
java
import org.mutantcat.justsimple.annotation.Instance;
@Instance
public class MyInstance {
public String hello() {
return "Hello, JustSimple!";
}
}
手动存取实例
java
InstanceHandler.putInstance("MyInstance", this);
InstanceHandler.getInstance("MyInstance");
直接添加配置(启动前合并到 args)
java
import io.netty.handler.codec.http.HttpMethod;
import io.netty.handler.codec.http.cors.CorsConfig;
import io.netty.handler.codec.http.cors.CorsConfigBuilder;
import org.mutantcat.justsimple.instance.InstanceHandler;
public class ConfigHandler {
// 启动前调用:args = ConfigHandler.doConfig(args);
public static String[] doConfig(String[] args) {
CorsConfig corsConfig = CorsConfigBuilder.forAnyOrigin()
.allowNullOrigin()
.allowedRequestMethods(HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE)
.allowedRequestHeaders("*")
.exposeHeaders("X-Custom-Header")
.maxAge(3600)
.build();
InstanceHandler.putInstance("CorsConfigInstanceName", corsConfig);
Integer port = 8082;
InstanceHandler.putInstance("portConfigName", port);
String[] newParams = {"corsConfig:CorsConfigInstanceName","port:portConfigName"};
String[] updatedArgs = new String[args.length + newParams.length];
System.arraycopy(args, 0, updatedArgs, 0, args.length);
System.arraycopy(newParams, 0, updatedArgs, args.length, newParams.length);
return updatedArgs;
}
}
通过实例添加配置(构造时即入池)
java
import io.netty.handler.codec.http.HttpMethod;
import io.netty.handler.codec.http.cors.CorsConfigBuilder;
import org.mutantcat.justsimple.annotation.Instance;
import org.mutantcat.justsimple.instance.InstanceHandler;
@Instance
public class CorsConfig {
public CorsConfig() {
InstanceHandler.putInstance("CorsConfigInstanceName",
CorsConfigBuilder.forAnyOrigin()
.allowNullOrigin()
.allowedRequestMethods(HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE)
.allowedRequestHeaders("*")
.exposeHeaders("X-Custom-Header")
.maxAge(3600)
.build()
);
}
}
规则与最佳实践
包结构: Controller 类需放在 controller 包下,保持统一扫描规范。
配置格式: 使用“配置名:实例名”,如 corsConfig:CorsConfigInstanceName、port:portConfigName。
优先级: 代码配置 > 配置文件;自动注册的 @Instance > 启动语句前传入的配置。
配置文件: resources/application.yaml 为默认配置文件路径。
单例控制器: 需要单例时,可同时标注 @Instance 与 @Controller。
@Instance 说明: 注解类会自动在实例池中注册一个实例,可用 name 指定注册名(默认类路径)。
以上规范均来自官方说明与示例,便于快速对齐项目结构与启动约定。
典型落地场景
本地测试/简单接口: 快速暴露一个 Java Web API,联调更顺手。
快速原型/极限编程: 需求一变就能秒级调整,避免“重型框架启动成本”。
Webhook/回调服务: 轻装上阵,响应快,维护成本低。
AI/数据中间层: 作为模型调用、向量存取、函数工具接口的轻量网关。
IoT/边缘接口: 少量接口、强时效的网关场景,JustSimple 足够好用。
跨语言转码: 由脚本/其他语言生成 Java 代码后直接运行,减少框架知识负担。
获取与社区
官网: https://www.mutantcat.org/software/justsimple
GitHub: https://github.com/Mutantcat-Working-Group/JustSimple
示例仓库: https://github.com/tyza66/JustSimpleDemo
如果你正被“想要一个简单 API,却不得不搬起大山”的无力感困住,JustSimple 也许正是你要的那把轻便扳手。现在就拉一条分支、粘贴上面的代码,把第一个接口跑起来。
关键词
核心: Java Web API、Java API 框架、轻量级 Java 框架、JustSimple、Mutantcat、快速原型、极限编程、本地测试、简单接口、临时模型
功能: 注解驱动、Controller、Handler、Context、Instance、InstanceHandler、实例池、CORS、跨域、CorsConfig、端口配置、application.yaml
生态与场景: Webhook、回调接口、AI 中间层、数据网关、IoT、边缘计算、微服务接口、脚本转码、快速开发、零学习曲线
技术词: FullHttpRequest、JSON 解析、Form 表单、Netty CORS、启动参数、包扫描、单例控制器、包结构规范、代码配置优先级
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。