Solon 是一个更现代感的应用开发框架,轻量、开放生态型的。支持 Web、Data、Job、Remoting、Cloud 等任何开发场景。
目前有近130个生态插件,含盖了日常开发的各种需求。
@Controllerpublic class DemoController{ @Socket @Mapping("/hello") public String hello(Context ctx){ if(ctx.session("user") == null){ ctx.sessionSet("user", "noear"); } return ctx.session("user"); }}public class DemoApp { public static void main(String[] args) { Solon.start(DemoApp.class, args, app -> { app.listenBefore(new ListenerEmpty() { @Override public void onOpen(Session session) { //修改ws的监听路径 if (session.path().startsWith("/xx/")) { session.pathNew(session.path().substring(4)); } } }); }); }}@Slf4jpublic class CloudJobInterceptorImpl implements CloudJobInterceptor { @Override public void doIntercept(Job job, CloudJobHandler handler) throws Throwable { long start = System.currentTimeMillis(); try { handler.handle(job.getContext()); } catch (Throwable e) { //记录带标签的日志 TagsMDC.tag0("job"); TagsMDC.tag1(job.getName()); log.error("{}", e); throw e; //别吃掉 } finally { //记录一个内部处理的花费时间 long timespan = System.currentTimeMillis() - start; CloudClient.metric().addMeter(Solon.cfg().appName(), "job", timespan); } }}//CloudEventInterceptor 与 CloudJobInterceptor 起到类型的作用