首页 > 编程语言 >Solon v2.4.0 发布,Java 生态的新星燃起

Solon v2.4.0 发布,Java 生态的新星燃起

时间:2023-07-22 09:11:07浏览次数:62  
标签:插件 Solon ssl v2.4 solon knife4j Java 优化

Solon 是什么开源项目?

一个,Java 新的生态型应用开发框架它从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模)。与其他框架相比,它解决了两个重要的痛点:启动慢,费内存。

关键记事:

  • 2021年1月,正式对外开源
  • 2022年7月,建立官网,发力推广
  • 2023年2月,v2.0 发布。官网增加 Solon Initializr,用于生成项目模板。
  • 2023年4月,成为信通院可信开源社区、可信开源项目。Maven 单月下载量突破100万。代码提交数超 11000 次
  • 2023年6月,Maven 单月下载量突破200万。官网资料超 500 个页面。

解决痛点?

由于Solon Bean容器的独特设计,不会因为扩展依赖变多而启动很慢(开发调试时,省时、爽快)!以知名开源项目“小诺”为例:

所谓:“时间就是生命,效率就是金钱”,“天下武功,唯快不破”。

相对于 Spring Boot 和 Spring Cloud 的项目,有什么特点?

  • 启动快 5 ~ 10 倍。 (更快)
  • qps 高 2~ 3 倍。 (更高)
  • 运行时内存节省 1/3 ~ 1/2。 (更少)
  • 打包可以缩小到 1/2 ~ 1/10;比如,300Mb 的变成了 23Mb。 (更小)
  • 同时支持 jdk8, jdk11, jdk17, jdk20, graalvm native image

本次更新了什么?

  • 新增 solon-openapi2-knife4j 插件,替代 solon-swagger2-knife4j
  • 增加 server.socket.ssl.* 配置
  • 增加 server.websocket.ssl.* 配置
  • 增加 Context::isSecure 接口
  • 增加 ChainManager::defExecuteHandler 接口
  • 增加 ChainManager 对 SessionStateFactory 的管理,原管理方式移除
  • 增加 @Header String[] xxx 注入支持
  • 增加 Converter 体系,一般用于基础类型的通用转换
  • 增加 日志服务孵化机制,可在打印前进行完成格式配置
  • 增加 solon.boot.socketd.netty 插件对 ssl 的支持
  • 增加 solon.boot.websocket.netty 插件对 ssl 的支持
  • 优化 RouterListener 取消自己的线程池,改用 RunUtil
  • 优化 JsonConverter 标为弃用,统一由 Converter 替代
  • 优化 SocketChannelBase 标为弃用,统一由 ChannelBase 替代
  • 优化 ResourceUtil 的根路径兼容性
  • 优化 @Init 注解逻辑,仅对原始实例有效。保持与 LifecycleBean 相同策略
  • 优化 solon.boot.smarthttp 的 ws 适配
  • 优化 nacos2-solon-cloud-plugin 的适配,统一 jackson 版本
  • 优化 nacos-solon-cloud-plugin 的适配,统一 jackson 版本
  • 优化 LogUtil 扩展方式,改为静态扩展方式,原手动方式标为弃用
  • 优化 Context::headerValues() 返回类型为 String[]
  • 优化 Context::paramValues() 统一 server 相关处理逻辑
  • 优化 统一 request 参数与实体字段的注入转换机制,并增加自定义转换机制
  • 优化 内核日志打印顺序,由 SolonApp 实例化后再打印。以便日志格式配置先加载
  • 优化 当使用 http ssl 时,服务启动打印为 https 地址
  • 优化 ActionExecuteHandlerDefault::changeBody 参数结构,方便不同的序列化方案处理
  • 优化 Nami 编码器匹配策略及头同步策略,尤其是仅单编码包引入时
  • 优化 AbstractRoutingDataSource 的关闭处理
  • 优化 ShardingDataSource 增加 Closeable 接口支持
  • 调整 beetlsql-solon-plugin 插件,DbConnectionSource 改为公有,调整包结构
  • 修复 solon-swagger2-knife4j 插件,递归类型的数据模型会栈溢出的问题
  • 修复 solon-swagger2-knife4j 插件,相同 path 不能显示多个 method 的问题
  • 修复 solon-swagger2-knife4j 插件,List<Demo> 风格参数,不能正常构建 json 示例
  • 修复 solon-swagger2-knife4j 插件,Page<Demo>Result<Page<Demo>> 等复杂嵌套的临时模型,不能正常构建 json 示例
  • dbvisitor 升为 5.3.3
  • mybatis-flex 升为 1.5.1
  • sqltoy 升为 5.2.59
  • fastmybatis 升为 2.8.1
  • bean-searcher 升为 4.2.2
  • liteflow 升为 2.10.5
  • beetl 升为 3.15.7.RELEASE
  • beetlsql 升为 3.23.4-RELEASE
  • smarthttp 升为 1.2.8
  • fastjson2 升为 2.0.35

项目仓库地址?

标签:插件,Solon,ssl,v2.4,solon,knife4j,Java,优化
From: https://www.cnblogs.com/noear/p/17572840.html

相关文章

  • Java Web 程序设计预习提纲
    以下是JavaWeb程序设计的预习提纲的Markdown格式示例:JavaWeb程序设计预习提纲1.Java基础回顾Java语言基础与面向对象Java类与对象的定义与使用常用数据类型与控制流程异常处理与文件I/O操作2.Servlet基础Servlet概述与生命周期Servlet的请求与响应S......
  • Python和Java的BASE64操作
    Python中的操作1.1相关链接Python编码解码---字符集/base641.2举例说明在Python中,base64.b64encode()方法用于对给定的字节数据进行Base64编码。该方法接受一个bytes-like对象(例如字节数组或字节字符串)作为输入,并返回一个Base64编码的字节字符串。使用base64.b64encode()......
  • Java文件批量上传
    Java文件批量上传在日常的开发过程中,我们常常需要将一批文件批量上传到服务器或其他存储设备上。使用Java语言可以轻松地实现这一功能。本文将介绍如何使用Java实现文件批量上传,并提供相应的代码示例。准备工作在开始编写上传文件的Java代码之前,我们需要进行一些准备工作。首先,......
  • Java随机生成因为字母
    Java随机生成因为字母在Java编程中,有时候我们需要生成随机的字母作为数据的一部分。这可能用于密码生成、验证码生成、随机字符串生成等各种应用场景。本文将介绍如何使用Java生成随机字母,并提供代码示例。1.使用Java的Random类生成随机字母Java提供了Random类,它可以生成伪随机......
  • Java数字转换为字符
    Java数字转换为字符在Java编程中,我们经常需要将数字转换为字符。这种转换可以在很多场景中使用,比如将数字转换为字符以便于打印、将数字转换为字符以便于进行字符操作等等。本文将介绍在Java中如何进行数字到字符的转换,并提供一些代码示例来帮助读者更好地理解。使用Character类......
  • Java输入汉字
    Java输入汉字实现方法作为一名经验丰富的开发者,我可以教你如何在Java中实现输入汉字的功能。下面是一个简单的流程图,展示了整个过程:步骤描述1获取用户输入的汉字2将汉字转换为Unicode编码3使用Java的IO流将Unicode编码写入文件或数据库4从文件或数据库中读......
  • JavaScript学习笔记
    之所以学习JS是想更清楚的了解这门语言,记得上学那会就感觉j真难学,工作了几年了一直从事后端,但偶尔也会用前端开发,这时候就会手忙脚乱, 好多东西都是默默糊糊,还有就是,我想知道这门语言真的很难学吗?抱着好奇的心态开始了一个月的学习历程,下面整理一下一个月的学习笔记.跟着......
  • 十大排序算法 Java版
    packagealgorithm;importjava.util.Collections;importjava.util.Vector;publicclassSort{//冒泡排序publicvoidBubbleSort(int[]a){booleanflag=true;for(inti=0;i<a.length;i++){flag=false;//用于判断上......
  • Java反射机制
    1、前置知识1.1、java虚拟机的方法区1.1、java虚拟机的方法区java虚拟机有一个运行时数据区,这个数据区又被分为方法区,堆区和栈区,我们这里需要了解的主要是方法区。方法区主要用来存放已经被虚拟机加载的类信息、静态变量、方法等信息。当虚拟机需要装载某个类的时候,需要类......
  • javaweb从入门到架构学习路线图?
    javaweb从入门到架构学习路线图?1.学习Java基础知识和面向对象编程的概念。2.了解计算机网络基础知识,包括HTTP协议、TCP/IP协议等。3.掌握HTML、CSS和JavaScript等前端技术,了解前后端交互原理和基本的前端开发技巧。4.学习基于Java的Web开发技术,包括Servlet、JSP等。5.深入学......