Solon 3.0.4 发布(Spring 的替代方案,备胎计划)

Solon 框架!

面向全场景的 Java 应用开发框架。从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态。新一代 Java 应用软件的生态基座。开放原子开源基金会,孵化项目。

  • 追求: 更快、更小、更简单
  • 提倡: 克制、高效、开放、生态

有什么特点(相对传统方案)?

特点描述
更高的计算性价比并发高 300%;内存省 50%
更快的开发效率代码少;入门快;启动快 10 倍(调试快)
更好的生产与部署体验打包小 90%
更大的兼容范围非 java-ee 架构;同时支持 java8 ~ java23,graalvm native image

入门探索视频(用户录制):

Solon 基础入门教程,面试&进阶必会Solon 国产框架学习

最近更新了什么?

  • 新增 nami-coder-abc 插件
  • 新增 solon-serialization-abc 插件
  • 新增 mybatis-solon 插件
  • 添加 solon SolonApp:pluginExclude 方法,排除插件加载
  • 添加 solon ResourceUtil.findResource(uri,defAsFile) 方法
  • 添加 solon HandlerSlots.add(expr,method,index,handler) 方法,支持路由优先级排序
  • 添加 solon Context::sessionState(create) 方法
  • 添加 solon SessionState.creationTime, lastAccessTime 方法
  • 添加 solon-data-sqlutils SqlUtils:ofName(dsName) 方法
  • 添加 solon-net-httputils HttpRespose.cookie 解析处理
  • 添加 solon-cloud-gateway CloudRouteRegister:routeRemove 方法
  • 添加 nami Encoder:bodyRequired() 方法,支持必须 body 请求的场景
  • 优化 solon @Produces@Consumes 改为可继承,方便通过基类
  • 优化 solon @Bean initMethodName,destroyMethodName 改为自有或公有方法(之前只能自有)
  • 优化 solon 外部配置加载处理,没有时,尝试在内部找资源文件
  • 优化 solon Props.bindTo 性能
  • 优化 solon SessionState:sessionId 的保持处理(从 attr 转到 cookieMap;减少一道)
  • 优化 solon 带’.'的环境变量自动加载到应用属性里(之前只加载 ‘solon.’)
  • 优化 solon AppContext 支持对 app 为 null 的过滤处理,强化无 app 的测试场景
  • 优化 solon-boot-websocket 对 “//” resourceDescriptor 的兼容性
  • 优化 solon-data-sqlutils 接口设计,优化极限性能
  • 优化 solon-cloud-gateway 改为流响应模式,节省内存驻留、并支持 sse 代理
  • 优化 solon 静态字段注入,取消有默认值则不注入的限制条件
  • 优化 kafka-solon-cloud-plugin 配置处理
  • 修复 solon-docs-openapi2 部分泛型响应体无法识别的问题
  • snack3 升为 3.2.121
  • wood 升为 1.3.15
  • redisx 升为 1.6.8
  • lombok 升为 1.18.36
  • smart-http 升为 2.3
  • vertx 升为 4.5.11
  • netty 升为 4.1.115.Final

项目架构图

项目仓库地址?

  • gitee:https://gitee.com/opensolon/solon
  • gitcode: https://gitcode.com/opensolon/solon
  • github:https://github.com/opensolon/solon

官网?

  • https://solon.noear.org

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/35018.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

严格单元测试造就安全软件

在信息技术迅速发展的今天,软件在各个行业中扮演着至关重要的角色,尤其是在汽车行业,其中软件的可靠性和安全性直接影响到人们的生命安全。软件缺陷所带来的潜在风险不容小觑,尤其在涉及到自动驾驶和车辆控制等关键系统时&#xf…

基于CALMET诊断模型的高时空分辨率精细化风场模拟技术应用

在研究流场时,常用观测、模型风洞测试和数值模拟方法进行研究。但时常遇到研究区气象站点分布稀疏,不能代表周边复杂地形的风场。风洞模拟需要对地形进行实景的微缩,但实际过程中可能更关心近地表边界层的风场。风洞模拟一方面费用较高&#…

手写签名OCR识别-提升文档处理效率

随着数字化办公和智能化管理的普及,企业在日常业务中处理的各类单据和文件数量与日俱增。这些文件不仅包括了繁琐的文字信息,还涉及到重要的签名和印章等手写元素。尤其是在合同、协议、发票、审批单等文档中,手写签名不仅是身份确认的重要标…

Flutter:webview打开网页

官方文档地址 下方代码来自官方文档&#xff0c;先简单记录下如何通过webview打开某个http地址 添加权限&#xff1a;android/app/src/main/AndroidManifest.xml <uses-permission android:name"android.permission.INTERNET"/>pubspec.yaml webview_flutter: …

WPF+LibVLC开发播放器-音量控制和倍速控制

界面 界面上增加音量的控件和倍速控制控件 音量控制 主要也是一个Slider进度条控件来实现音量调节 我们这里设置默认的最大值为100&#xff0c;默认Value值也为100&#xff0c;默认声音开到最大 这里目前完全由前端控制音量调节&#xff0c;可以直接使用ValueChanged事件实…

重生之我在异世界学编程之C语言:初识一维和二维数组篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文数组的基本类型&#xff1a;一维…

Ubuntu 新加硬盤分區

1. 查看系統是否識別新的硬盤 lsblk 假設硬盤的名字為&#xff1a;sudo fdisk /dev/sda 注意硬盤類型為gpt&#xff0c;大小沒有限制 2. 硬盤分區 sudo fdisk /dev/sda 根據提示&#xff1a; n 新加分區&#xff0c;設置分區大小。 p 查看分區情況以及大小 d: 刪除也…

openGauss开源数据库实战十六

文章目录 任务十六 openGauss逻辑结构:触发器管理任务目标实施步骤一、测试openGauss的触发器1.创建测试表2.创建触发器对应的函数3.创建触发器4.测试触发器 二、触发器的类型1.行级触发器2.语句级触发器3.AFTER触发器和 BEFORE触发器 任务十六 openGauss逻辑结构:触发器管理 …

键值对形式读取值

效果 学习啦&#xff01; 异步请求数据方法&#xff1a; ①async/await <script setup> import { nextTick, onMounted } from vuelet Info {}const loadData async () > {try {const response await fetch(/json/info.json)const data await response.json()data…

Java面向对像编程OOP

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 OOP总结&#xff1a; 类和对象的说明Java中有无static修饰的方法的使用区别&#xff1a;✅️有stat…

【MARL】MAT论文阅读笔记

文章目录 前言一、如何产生这个想法(TRPO -> ) PPO -> MAPPO -> HAPPO -> MAT 二、多智能体优势值分解定理三、transformer 在MAT的应用四、伪代码简述五、实验效果 前言 正好有节课让我们调研最新的自己的方向的新论文&#xff0c;找到一篇自己觉得比较可行&…

深度学习模型——双塔模型(Two-Tower Model)详解

双塔模型是一种高效、灵活的深度学习模型结构&#xff0c;广泛用于推荐系统和信息检索等场景中。其核心思想是分别为两个实体&#xff08;如用户和物品、查询和文档&#xff09;构建独立的特征表示网络&#xff08;两座塔&#xff09;&#xff0c;并在共享语义空间中通过相似性…

回溯里面的基本概念

1.深度优先遍历和深度优先搜索&#xff08;DFS) 深度优先遍历 主要思路是从图中一个未访问的顶点 V 开始&#xff0c;沿着一条路一直走到底&#xff0c;然后从这条路尽头的节点回退到上一个节点&#xff0c;再从另一条路开始走到底...&#xff0c;不断递归重复此过程&#xff…

LeetCode 热题100(十五)【动态规划】(3)

15.7最长递增子序列&#xff08;中等&#xff09; 题目描述&#xff1a;leetcode链接 300. 最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元…

springboot如何集成工作流审批流,流程设计器集成,业务表单和工作流绑定,详细步骤和实际案例参考(源码)

前言 activiti工作流引擎项目&#xff0c;企业erp、oa、hr、crm等企事业办公系统轻松落地&#xff0c;一套完整并且实际运用在多套项目中的案例&#xff0c;满足日常业务流程审批需求。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器&#xff0c;流行的前后端…

02_Node.js模块化

02_Node.js模块化 知识点自测 以下代码运行的结果是多少&#xff1f; const arr [10, 20, 30] const result arr.map(val > val 1).reduce((sum, val) > sum val, 0) console.log(result) A&#xff1a;60 B&#xff1a;63 <details><summary>答案</…

vulnhub kioptirx1.2 超详细wp

探测 nmap --min-rate 10000 -p- 192.168.128.134 最小速率10000 nmap -sT -sV -sC -O 192.168.128.134 web打点 无弱口令 暴露cms寻找exp searchsploit LotusCMS -m 16982 [输入id号和参数m可以直接把东西复制到当前目录] 查看txt里面发现 都是xss没有rce github搜索到一个…

vulnhub靶场之【grotesque】三

前言 靶机&#xff1a;grotesque-3 192.168.1.44 攻击 &#xff1a;kali 192.168.1.16 都是虚拟机环境&#xff0c;桥接模式 主机发现 使用arp-scan -l或者netdiscover -r 192.168.1.1/24搜索 信息收集 使用nmap扫描 防止有遗漏&#xff0c;再扫描全端口 网站信息收集 …

大规模模型部署、推理的工具:Xinference

有没有 Xinference之前&#xff0c;如果想要部署应用一个开源模型&#xff0c;可能会面临以下一些情况和挑战&#xff1a; 自行开发推理框架&#xff1a; 需要投入大量的时间和精力来构建一个可靠且高效的推理框架&#xff0c;包括处理模型加载、资源管理、请求调度等复杂的任务…

C语言选择法排序

C语言编程&#xff0c;用选择法对数组中4个整数按由大到小排序 1、代码如下&#xff1a; #include<stdio.h> #include<math.h> #include<string.h>int main() {void sort(int array[],int n);printf("测试开始\n");int nums[] {2,3,4,1};sort(n…