Solon Java Framework 2.1.2 发布。简单!高效!国产!

news2024/9/20 22:22:31

Solon 是一个高效的 Java 应用开发框架:更快、更小、更简单。它不是 Spring,没有用 Servlet,也无关 JavaEE;它也是一个新兴独立的开放生态。主框架仅 0.1 MB。

150来个生态插件,覆盖各种不同的应用开发场景:

相对于 Spring Boot 和 Spring Cloud 的项目:

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

似曾相似的体验,入门更简单,迁移很方便:

@Controller
public class App {
    public static void main(String[] args) {
        Solon.start(App.class, args, app->{
            //手写模式
            app.get("/", ctx -> ctx.outputAsJson("{message:'Hello world!'}"))
        });
    }

    //注解模式
    @Get
    @Socket
    @Mapping("/hello")
    public String hello(String name) {
        return String.format("Hello %s!", name);
    }
}

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

《bilibili - solon 入门探索》

本次更新:

  • 新增 solon.health.detector 插件
  • 新增 activemq-solon-cloud-plugin 插件
  • 新增 solon.logging.log4j2(复制于 log4j2-solon-plugin)
  • 新增 solon.logging.logback(复制于 logback-solon-plugin)
  • 插件 beetlsql-solon-plugin 升级 beetlsql 为 3.20.0
  • 插件 sqltoy-solon-plugin 升级 sqltoy 为 5.2.32
  • 插件 dbvisitor-solon-plugin 升级 dbvisitor 为 5.2.1
  • 插件 sa-token-solon-plugin 添加 SaJsonTemplate 实现类
  • 增加 @Condition 注解,提供Com类与Bean函数的过滤支持!!!
  • 增加 AppPrestopEndEvent,AppPrestopEndEvent 事件!!!
  • 增加 配置元信息 solon-configuration-metadata.json 规范与支持
  • 增加 EventBus.pushTry 接口
  • 增加 solon.view.beetl 对 -debug=1 的支持
  • 增加 solon.view.enjoy 对 -debug=1 的支持
  • 增加 ResourceUtil 工具类,提供资源路径表达式分析能力
  • 增强 detector-solon-plugin 扩展能力
  • 增强 mybatis-solon-plugin 的 typeAliases,typeHandlers,mappers 表达式配置能力
  • 调整 local-solon-cloud-plugin 本地文件路径规范
  • 优化 安全停止与延时的配置(增加新的启动参数:stop.safe,和应用配置:solon.stop.safe)
  • 修复 mybatis-solon-plugin 与 solon-maven-plugin 打包插件的兼容性问题

进一步了解 Solon:

  • 《想法与架构笔记》
  • 《生态预览》
  • 《与 Spring Boot 的区别?》
  • 《与 Spring Cloud 的区别?》

项目仓库:

  • gitee:https://gitee.com/noear/solon
  • github:https://github.com/noear/solon

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

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

相关文章

Linux Capabilities 入门

目录 Linux capabilities 是什么? capabilities 的赋予和继承 线程的 capabilities Permitted Effective Inheritable Bounding Ambient 文件的 capabilities Permitted Inheritable Effective 运行 execve() 后 capabilities 的变化 案例 Linux capab…

黑马】后台管理183-

一、添加时间线组件时间线组件在element2.6.0的版本中才可以找到项目中用到的插件早于时间线插件发布的,所以需要用到素材中的,timeline 和timeline-item复制到\code\shop-hou\src\plugins\1,在element.js中导入timeline等组件import Timeline from ./ti…

20230213在AIO-3568J开发板在原厂Android12下跑通ap6275s

20230213在AIO-3568J开发板在原厂Android12下跑通ap6275s 2023/2/13 8:59 一、从AIO-3568的Android11的kernel中抠出来AP6275S的驱动: 1、 Z:\android12-rk3588-new\kernel-4.19\arch\arm64\configs\rockchip_defconfig # CONFIG_WLAN_VENDOR_QUANTENNA is not set …

电路中的过压(OVP)过流(OCP)保护电路

电路中的过压(OVP)过流(OCP)保护电路 我们在学习电路设计的过程中,总会发现电路在过压或者过流时遭到不可逆的损坏, 下面分享几例过压过流保护电路, 希望对朋友们有所帮助, 个人能力有限, 如有不当之处还请多多指教: 例 1:OVP(过压保护) 1).当VCC_IN小于28V时&…

spring(三)-----------什么是beanDefinition?

上篇我们以mybatis如何注入mapper对象为引,发现mybatis使用了FactoryBean(动态代理)动态注册beanDefinition 的方式实现了对多个bean进行注入。 这篇我们延续上篇的问题,什么是beanDefinition?动态注入beanDefinition…

yum安装

仓库安装[rootlocalhost ~]# rpm -ivh https://repo.mysql.com//mysql80-community-release-el9-1.noarch.rpm[roothezhihao ~]# dnf install mysql-server -y本地安装wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-1.el9.x86_64.rpm-bundle.tartar xvf mysql…

STK + C# + Cesium联合编程(二):CZML文件生成及加载

概述本文续上一篇博文,上一篇文章中验证了C# .NET Framework (Web Service) STK Cesium前端显示的相关技术,本篇通过STK安装附带的Pro Tutorial实例以及Export CZML插件演示如何创建STK场景,创建对象,计算Access,并通…

【软件测试】8年测试老兵的突破之路,一路升级打怪......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 目前几乎所有的大厂…

网络基础-基础网络命令

文章目录路由命令查询添加路由1.添加访问某台主机的静态路由2.添加访问某个网络的静态路由3.添加默认网关:删除设计关键字路由2参考路由 命令查询 通过 route --help 或man route 查询 添加路由 1.添加访问某台主机的静态路由 route add -host [目标主机IP地址…

为什么优秀的人总能拥有开挂的人生

时间不会辜负一个自信之人。坚持不懈的努力,如果好的回报尚未到来,那一定是时间还不够长,努力还不够多。 来自尚学堂毕业学生的感悟 我从未接触过编程,来到北京尚学堂学Java的,学习难度自然要比计算机专业的同学大很多…

OpenHarmony使用Socket实现一个UDP客户端详解

一、前言 我们在这里介绍Socket的使用,是为了后面的一篇文章实现设备配网做铺垫。 二、示例详解 点击获取BearPi-HM_Nano源码 ,以D3_iot_udp_client为例: 示例本身很简单,只需要修改 udp_client_demo.c 的2处代码,就能测试了: //连接WIFI,参数1是:WIFI名称,参数2是:…

【ChatGPT】AI 人工智能将使中国教育优势荡然无存

中国的教育现状 论述1: 上小学的时候,老师天天检查你有没有戴红领巾,不带就要体罚,大人告诉你,等到上中学老师就不管这些杂事了。上中学的时候,学习非常辛苦,周末还要补课,大人们又…

人工智能为PMO提供支持的4种方式

许多企业已经认识到 PMO (项目管理办公室)和 PPM (项目组合管理)在推动增长、提高组织敏捷性和交付更好的业务成果方面的力量。今天的PMO被期望用更少的钱做更多的事,而且做得更快。 虽然PMO的工作很繁重,…

ChIP-seq 分析:数据比对(3)

读取 reads(二者含义相同,下文不做区分)1. ChIPseq reads 比对 在评估读取质量和我们应用的任何读取过滤之后,我们将希望将我们的读取与基因组对齐,以便识别任何基因组位置显示比对读取高于背景的富集。 由于 ChIPseq…

DNS 原理入门指南(三)

六、分级查询的实例 dig命令的trace参数可以显示DNS的整个分级查询过程。 $ dig trace math.stackexchange.com 上面命令的第一段列出根域名.的所有NS记录,即所有根域名服务器。 根据内置的根域名服务器IP地址,DNS服务器向所有这些IP地址发出查询请求&…

LeetCode题目笔记——2563. 统计公平数对的数目

文章目录题目描述题目链接题目难度——中等方法一:排序双指针代码/Python代码/C方法二代码/Python总结题目描述 这是前天周赛的第二题。 统计公平数对的数目 - 给你一个下标从 0 开始、长度为 n 的整数数组 nums ,和两个整数 lower 和 upper &#xff0c…

【Spring Cloud】如何使用Feign实现远程调用

本期目录前言1. 导入依赖坐标2. 开启Feign自动装配3. 声明远程调用4. 替代RestTemplate5. 测试前言 本次示例代码的文件结构如下图所示。 1. 导入依赖坐标 在 order-service 的 pom.xml 文件中导入 Feign 的依赖坐标。 <!-- Feign远程调用客户端 --> <dependency&…

FastAPI(二)路由映射

目录 一、在根目录-新建apps文件夹 二、在apps文件夹下-新建user文件夹和menu文件夹 三、编写API 四、 将子路由导入根路由中 五、改造main.py 六、启动并访问接口文档 一、在根目录-新建apps文件夹 编辑__init__.py文件如下&#xff1a; from fastapi import APIRoute…

动态规划专题——背包问题

&#x1f9d1;‍&#x1f4bb; 文章作者&#xff1a;Iareges &#x1f517; 博客主页&#xff1a;https://blog.csdn.net/raelum ⚠️ 转载请注明出处 目录前言一、01背包1.1 使用滚动数组优化二、完全背包2.1 使用滚动数组优化三、多重背包3.1 使用二进制优化四、分组背包总结…

Spring基础入门(一)之 理论基础概念

文章目录前言Spring 体系结构IOC&DI1.Ioc控制反转2.DI依赖注入3.目标IOC相关之bean1.bean的基础配置2.bean的实例化3.bean的生命周期4.IOC管理第三方beanDI相关之注入注解开发1.介绍2.注解之bean&DI3.注解管理第三方bean4.常见注解的含义AOP1.介绍2.核心概念3.常见注解…