Solon 1.6.36新发布,有何现代感应用开发框架亮点?

2026-05-19 20:511阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计704个文字,预计阅读时间需要3分钟。

Solon 1.6.36新发布,有何现代感应用开发框架亮点?

Solon 是一个现代化感的应用框架,适用于 Spring Boot 和 Spring Cloud 项目。它能实现快速启动,提升 5~10 倍 QPS,运行时内存节省 2~3 倍,打包体积可缩小至 1/2~1/10(如 90Mb 变为 9Mb)。

相对于 Spring Boot 和 Spring Cloud 的项目
  • 启动快 5 ~ 10 倍
  • qps 高 2~ 3 倍
  • 运行时内存节省 1/3 ~ 1/2
  • 打包可以缩小到 1/2 ~ 1/10(比如,90Mb 的变成了 9Mb)
关于 Solon

Solon 是一个更现代感的应用开发框架,轻量、开放生态型的。支持 Web、Data、Job、Remoting、Cloud 等任何开发场景。

  • 强调,克制 + 简洁 + 开放 + 生态的原则
  • 力求,更小、更少、更快、更自由的体验

目前有近130个生态插件,含盖了日常开发的各种需求。

本次主要更新
  • 添加 SocketContext::SessionState 接口支持

@Controller public class DemoController{ @Socket @Mapping("/hello") public String hello(Context ctx){ if(ctx.session("user") == null){ ctx.sessionSet("user", "noear"); } return ctx.session("user"); } }

  • 添加 Session::pathNew() 接口支持
  • 添加 SolonApp::listenBefore, SolonApp::listenAfter 接口,以提供 Listener 过滤的支持

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)); } } }); }); } }

  • 添加 sa-token-solon-plugin 插件对 dao 适配[实验方案]
    • SaTokenDaoOfRedis
    • SaTokenDaoOfSession
  • 新增 mybatis-plus-extension-solon-plugin 插件
  • 插件 solon.extend.sessionstate.jwt 呼略 ServiceConfigurationError 抛出
  • 添加 CloudJobInterceptor,提供 job 的拦截机制

@Slf4j public 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,提供 event 的拦截机制

//CloudEventInterceptor 与 CloudJobInterceptor 起到类型的作用

  • 调整 Gateway 的缺省处理设定方式
  • 调整 CloudJobHandler 为 job 的强制接口,之前 Handler 即可
  • 调整 HttpUtils 增加短处理和长处理的切换支持
进一步了解 Solon
  • 《想法与架构笔记》
  • 《生态预览》
  • 《与 Spring Boot 的区别?》
  • 《与 Spring Cloud 的区别?》
项目地址
  • gitee:gitee.com/noear/solon
  • github:github.com/noear/solon
  • website: solon.noear.org

Solon 1.6.36新发布,有何现代感应用开发框架亮点?

本文共计704个文字,预计阅读时间需要3分钟。

Solon 1.6.36新发布,有何现代感应用开发框架亮点?

Solon 是一个现代化感的应用框架,适用于 Spring Boot 和 Spring Cloud 项目。它能实现快速启动,提升 5~10 倍 QPS,运行时内存节省 2~3 倍,打包体积可缩小至 1/2~1/10(如 90Mb 变为 9Mb)。

相对于 Spring Boot 和 Spring Cloud 的项目
  • 启动快 5 ~ 10 倍
  • qps 高 2~ 3 倍
  • 运行时内存节省 1/3 ~ 1/2
  • 打包可以缩小到 1/2 ~ 1/10(比如,90Mb 的变成了 9Mb)
关于 Solon

Solon 是一个更现代感的应用开发框架,轻量、开放生态型的。支持 Web、Data、Job、Remoting、Cloud 等任何开发场景。

  • 强调,克制 + 简洁 + 开放 + 生态的原则
  • 力求,更小、更少、更快、更自由的体验

目前有近130个生态插件,含盖了日常开发的各种需求。

本次主要更新
  • 添加 SocketContext::SessionState 接口支持

@Controller public class DemoController{ @Socket @Mapping("/hello") public String hello(Context ctx){ if(ctx.session("user") == null){ ctx.sessionSet("user", "noear"); } return ctx.session("user"); } }

  • 添加 Session::pathNew() 接口支持
  • 添加 SolonApp::listenBefore, SolonApp::listenAfter 接口,以提供 Listener 过滤的支持

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)); } } }); }); } }

  • 添加 sa-token-solon-plugin 插件对 dao 适配[实验方案]
    • SaTokenDaoOfRedis
    • SaTokenDaoOfSession
  • 新增 mybatis-plus-extension-solon-plugin 插件
  • 插件 solon.extend.sessionstate.jwt 呼略 ServiceConfigurationError 抛出
  • 添加 CloudJobInterceptor,提供 job 的拦截机制

@Slf4j public 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,提供 event 的拦截机制

//CloudEventInterceptor 与 CloudJobInterceptor 起到类型的作用

  • 调整 Gateway 的缺省处理设定方式
  • 调整 CloudJobHandler 为 job 的强制接口,之前 Handler 即可
  • 调整 HttpUtils 增加短处理和长处理的切换支持
进一步了解 Solon
  • 《想法与架构笔记》
  • 《生态预览》
  • 《与 Spring Boot 的区别?》
  • 《与 Spring Cloud 的区别?》
项目地址
  • gitee:gitee.com/noear/solon
  • github:github.com/noear/solon
  • website: solon.noear.org

Solon 1.6.36新发布,有何现代感应用开发框架亮点?