首页 > 编程语言 >Solon Java Framework v1.12.0 发布

Solon Java Framework v1.12.0 发布

时间:2023-01-02 10:22:18浏览次数:62  
标签:插件 Solon plugin Spring v1.12 solon test Java 优化

一个更现代感的 Java 应用开发框架:更快、更小、更自由。没有 Spring,没有 Servlet,没有 JavaEE;独立的轻量生态。主框架仅 0.1 MB。

@Controller
public class App {
    public static void main(String[] args) {
        Solon.start(App.class, args);
    }

    @Get
    @Socket
    @Mapping("/hello")
    public String hello(@Param(defaultValue = "java") String name) {
        return String.format("Hello %s!", name);
    }
}

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

《bilibili - solon 入门探索》

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

  • 启动快 5 ~ 10 倍。 (更快)
  • qps 高 2~ 3 倍。 (更高)
  • 运行时内存节省 1/3 ~ 1/2。 (更少)
  • 打包可以缩小到 1/2 ~ 1/10;比如,300Mb 的变成了 23Mb。 (更小)
  • 基于服务 name 进行注册发现 与 k8s svc 相互对应
  • 支持 Service Mesh 架构部署方案
  • 同时支持 jdk8, jdk11, jdk17, jdk19
  • 没有 Spring,没有 Servlet,没有 JavaEE;独立的轻量生态

本次更新:

  • 新增 solon.test 插件
  • 新增 solon-test-junit4 插件,相对 solon-test 只支持 junit4
  • 新增 solon-test-junit5 插件,相对 solon-test 只支持 junit5
  • 插件 sentinel-solon-cloud-plugin 控制台调试
  • 插件 mybatis-solon-plugin 的 xml 配置增加 ** 表达式支持
  • 调整 AopContext::getProps() 标为弃用,由 AopContext::cfg() 接替
  • 调整 Plugin::init() 为 Plugin::init(AopContext); 为 solon cloud 热插拨增强支持 !!!
  • 优化 action parameter 转换失败时的友好提示
  • 优化 solon cloud 插件增加对热插拨的支持,以前只能用主程序的配置,现在可以用插件的配置
  • 优化 forest-solon-plugin 重新深度适配,并支持 solon 的 upstream !!!
  • 优化 liteflow-solon-plugin 重新深度适配 !!!
  • 优化 solon-test 增加更多场景的并发单测支持 !!!
  • 优化 sa-token-solon-plugin 解决不能自动注册多个 StpLogic 的问题
  • 优化 core 全局 AopContext 由原来的静态变量,改为 SolonApp 的成员变量 !!!
  • 优化 core 支持测试时多 SolonApp 运行和切换从而实现单测隔离效果 !!!
  • 优化 core 增加 Utils.resolvePaths(expr),用于支持 /a/**/b/*.xml 这种路径的解析
  • 优化 core 调整 BeanWrap 的 hashCode 处理;并增加 beanWrapsSet 对 name 注册收集 !!!

进一步了解 Solon:

项目仓库:

标签:插件,Solon,plugin,Spring,v1.12,solon,test,Java,优化
From: https://www.cnblogs.com/noear/p/17019469.html

相关文章

  • SpringBoot中使用JDBC(扩展:关于java中的jdbc、数据库驱动、数据库连接池的学习与理解)
    SpringBoot中使用JDBC:https://huaweicloud.csdn.net/63876ea0dacf622b8df8bf7d.html?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7E......
  • mysql-connector-java与mysql以及JDK的对应版本
    https://blog.csdn.net/xunxue1523/article/details/105524758?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ER......
  • nginx-clojure nginx clojure & java & groovy 模块
    nginx-clojure是一个nginx扩展模块,让我们可以直接运行clojure&java&groovy,还是比较强大的,支持的功能也不少我们可以直接基于jvm对于nginx进行扩展了,还是值得尝试......
  • 包机制及java生成文档
    包机制为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。包机制的语法格式为:packagepkg1[.pkg2[.pkg3...]];$\color{red}{一般利用公司域名倒置作......
  • JavaScript(数据类型)
    一、数据类型1.概述为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。2.变量的数据类型varage=10;//数字型varareYouOk......
  • java中的HashMap类的遍历
    示例代码如下:1publicclassHashMapBianLiTest{2publicstaticvoidmain(String[]args){3//hashMap的遍历4HashMaphashMap=new......
  • Linux 中 java 访问 windows共享目录
    有两个方案(本文介绍方案1的使用)1、将windows共享目录,挂载到linux系统下,通过使用本地目录访问windows共享目录2、通过samba的java实现包,不过需要开个windows共享目录的账......
  • Java序列化和反序列化
    遇到这个JavaSerializable序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个Serializable接口,也就是为啥要序列化c,serialVersion......
  • Java多种方式读取文件内容
    1.以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。2.以字符为单位读取文件,常用于读文本,数字等类型的文件。3.以行为单位读取文件,常用于读面向行的格式化......
  • java-流程控制语句
    目录顺序分支if判断if格式1if格式2if格式3switch选择case穿透:即没有break的case语句!补充:if和switch的使用说明!流程for循环*while循环*for与while的区别do...while循环顺......