码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Solon 1.6.36 发布,更现代感的应用开发框架


    相对于 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:https://gitee.com/noear/solon
    • github:https://github.com/noear/solon
    • website: https://solon.noear.org
  • 相关阅读:
    保健用品智慧供应链管理系统:精细化管理供应商与采购环节,打造敏捷型供应链
    【GhostNet】《GhostNet:More Features from Cheap Operations》
    评估指标Pre\Rec\F1\AUC
    CHS零壹视频恢复程序OCR使用方法
    Java面试题:多线程面试必刷题,线程池是如何实现线程复用的?
    [附源码]java毕业设计汽车票售票系统lunwen
    工业RFID厂家与您分享工业生产制造的应用案例
    Vue----数据源中数组的操作
    linux上安装kaldi
    Maven(1)
  • 原文地址:https://www.cnblogs.com/noear/p/16128126.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号