一个高效的 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//

    • 删降 Aop;由 Solon.context() 替代
    • 删除 Bean:attr,Component:attr
    • 删除 BeanLoadEndEvent,PluginLoadEndEvent;由 AppBeanLoadEndEvent,AppPluginLoadEndEvent 替代
    • 删除 Utils.parallel()...等几个弃用接口;由 RunUtil 替代
    • 删除 Solon.global();由 Solon.app() 替代
    • 删除 SolonApp::port();由 Solon.cfg().serverPort() 替代
    • 删除 SolonApp::enableSafeStop();由 Solon.cfg().enableSafeStop() 替代
    • 删作 AopContext::getProps();由 ::cfg() 替代
    • 删除 AopContext::getWrapAsyn();由 ::getWrapAsync() 替代
    • 删除 AopContext::subWrap();由 ::subWrapsOfType() 替代
    • 删除 AopContext::subBean();由 ::subBeansOfType() 替代
    • 删除 AopContext::getBeanAsyn();由::getBeanAsync() 替代
    • 删除 Solon.cfg().version();由 Solon.version() 替代
    • 删除 EventBus::pushAsyn();由 pushAsync() 替代
    • 删除 PrintUtil::debug(),::info() 等...;由 LogUtil 替代
    • 删除 @Mapping::before,after,index 属性;由 @Before,@After 或 RouterInterceptor 或 Solon.app().before(),after() 替代
    • 删除 "solon.profiles.active" 应用配置(只在某版临时出现过);由 "solon.env" 替代
    • 删除 "solon.extend.config" 应用配置(只在某版临时出现过);由 "solon.config" 替代
    • 删除 "solon.encoding.request" 应用配置(只在某版临时出现过);由 "server.request.encoding" 替代
    • 删除 "solon.encoding.response" 应用配置(只在某版临时出现过);由 "server.request.response" 替代
    • 调整 DownloadedFile,UploadedFile 字段改为私有;由属性替代
  • 调整 solon.i18n//
    • 删除 I18nBundle::toMap();由 ::toProp() 替代
  • 调整 solon.web.cors//
    • 删除 ..extend.cores 包;由 ..web.cors 包替代
  • 调整 solon.cloud//
    • 删除 Media::bodyAsByts()..;由 ::bodyAsBytes() 替代
  • 调整 solon.cloud.httputils//
    • 删除 cloud.HttpUtils::asShortHttp()..;由 ::timeout() 替代
  • 调整 solon.test//
    • 删除 test.HttpUtils::exec2()..;由 ::execAsCode()..替代
  • 调整 solon.boot//
    • 删除 SessionStateBase/cookie[SOLONID2]
  • 调整 mybatis-solon-plugin//
    • 删除 org.apache.ibatis.ext.solon.Db;由 ..solon.annotation.Db 替代
  • 调整 beetlsql-solon-plugin//
    • 删除 org.beetl.sql.ext.solon.Db;由 ..solon.annotation.Db 替代
  • 调整 sa-token-solon-plugin//
    • 删除 SaTokenPathFilter 类,由 SaTokenFilter 替代
    • 删除 SaTokenPathInterceptor 类,由 SaTokenInterceptor 替代
  • 删除插件 httputils-solon-cloud-plugin;由 solon.cloud.httputils 替代
  • 删除插件 solon.extend.stop;由 solon.web.stop 替代
  • 删除插件 solon.extend.async;由 solon.scheduling 替代
  • 删除插件 solon.schedule;由 solon.scheduling.simple 替代
  • 删除插件 solon.extend.retry
  • 删除插件 solon.extend.jsr330
  • 删除插件 solon.extend.jsr303
  • 删除插件 solon.logging.impl;由 solon.logging.simple 替代
  • 新增插件 powerjob-solon-plugin
  • 新增插件 powerjob-solon-cloud-plugin(支持 solon cloud job 标准)
  • 调整 solon.scheduling/JobManger 添加更多注册时检测
  • 调整 solon.banner/banner.txt 自定义默认机制
  • 调整 sa-token-solon-plugin/isPrint 处理机制
  • 调整 sa-token-solon-plugin 增加对 sso,oauth2 两模块的适配
  • 调整 nami 添加 ContentTypes 类,提供便利的 content-type 常量

进一步了解 Solon:

项目仓库:

Solon v2.0 大版本发布。提效率!降成本!的更多相关文章

  1. 发布日志 - kratos v2.0.4 版本发布

    V2.0.4 Release Release v2.0.4 · go-kratos/kratos (github.com) 新的功能 proto-gen-http 工具在生产代码时如果 POST/PU ...

  2. 发布日志 - kratos v2.0.5 版本发布

    V2.0.5 Release Release v2.0.5 · go-kratos/kratos (github.com) 修复问题 proto errors when swagger api imp ...

  3. QuantumTunnel:v1.0.0 正式版本发布

    经过一段时间运行,代码已经稳定是时候发布正式版本了! v1.0.0 正式版本发布 对核心能力的简要说明: 支持协议路由和端口路由:QuantumTunnel:端口路由 vs 协议路由 基于Netty实 ...

  4. QzzmServer v2.0正式版发布

                                 V2.1升级程序已发布,具体见下文                                首先,感谢网友的热情的测评及反馈,现Qzzm ...

  5. 面向UI编程:ui.js 1.0 粗糙版本发布,分布式开发+容器化+组件化+配置化框架,从无到有的艰难创造

    时隔第一次被UI思路激励,到现在1.0的粗糙版本发布,掐指一算整整半年了.半年之间,有些细节不断推翻重做,再推翻再重做.时隔今日,终于能先出来个东西了,这个版本很粗糙,主体功能大概能实现了,但是还是有 ...

  6. Jeecg-Boot 2.0.1 版本发布,前后端分离快速开发平台

    Jeecg-Boot项目简介 Jeecg-boot 是一款基于代码生成器的快速开发平台! 采用前后端分离技术:SpringBoot,Mybatis,Shiro,JWT,Vue & Ant De ...

  7. GO 前后端分离开源后台管理系统 Gfast v2.0.4 版发布

    更新内容:1.适配插件商城,开发环境从后台直接安装插件功能:2.代码生成细节修复及功能完善(支持生成上传文件.图片及富文本编辑器功能):3.增加swagger接口文档生成:4.更新goframe版本至 ...

  8. 动态线程池框架 DynamicTp v1.0.6版本发布。还在为Dubbo线程池耗尽烦恼吗?还在为Mq消费积压烦恼吗?

    DynamicTp 简介 DynamicTp 是一个基于配置中心实现的轻量级动态线程池管理工具,主要功能可以总结为 动态调参.通知报警.运行监控.三方包线程池管理等几大类. 经过几个版本迭代,目前最新 ...

  9. 动态编译库 Natasha 5.0 兼容版本发布

    Natasha 5.0 版本已于 2022/10/10 日发布, 此次大版本更迭带来了兼容性支持, 目前 Natasha 可以兼容 standard2.0 及 coreapp3.1 以上版本. 下载使 ...

  10. springboot v2.0.3版本多数据源配置

    本篇分享的是springboot多数据源配置,在从springboot v1.5版本升级到v2.0.3时,发现之前写的多数据源的方式不可用了,捕获错误信息如: 异常:jdbcUrl is requir ...

随机推荐

  1. Spring Boot:自定义 Whitelabel 错误页面

    一.概述在本文中,我们将研究如何禁用和自定义 Spring Boot 应用程序的默认错误页面,因为正确的错误处理描述了专业性和质量工作. 2.禁用白标错误页面 首先,让我们看看如何通过将server. ...

  2. onps栈移植说明(1)——onps栈的配置及裁剪

    onps栈的移植涉及几个部分:1)系统配置及裁剪:2)基础数据类型定义:3)RTOS适配层实现:4)编写网卡驱动并注册网卡.本文作为onps栈移植的指导性文件将给出一般性的移植说明及建议,具体的移植样 ...

  3. Vue实现离开页面二次确认

    在项目开发中遇到用户编辑内容后未保存推出编辑页面时需要提示用户"当前数据未保存,是否退出",实际开发中利用window.onbeforeunload方法与vue.$on方法在upd ...

  4. JUC学习笔记——进程与线程

    JUC学习笔记--进程与线程 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的进程与线程部分 我们会分为以下几部分进行介绍: 进程与线程 并发与并行 同步与异步 线程详解 进程与线程 ...

  5. 【题解】CF1659E AND-MEX Walk

    题目传送门 位运算 设题目中序列 \(w_1,w_1 \& w_2,w_1 \& w_2 \& w_3,\dots,w_1 \& w_2 \& \dots \& ...

  6. 2022春每日一题:Day 25

    题目:青蛙的约会 读完题,显然可以的到下同余方程:x+mk≡y+nk (mod L) 移项变成 (m-n)k+aL=y-x 只有k,L是未知的,而这题要求非负整数k的最小值,显然拓展欧几里得算法. 然 ...

  7. 深度解析KubeEdge EdgeMesh 高可用架构

    摘要:通过高可用特性应用场景.高可用特性使用手册.课题总结.未来展望等四个部分的内容来向大家介绍新版本EdgeMesh的高可用架构. 本文分享自华为云社区<KubeEdge EdgeMesh 高 ...

  8. vue3和vue2 的区别,vue3和vu2到底哪个好呢?

    vue3 正式发布有两年多了,之前也做过一些学习和研究.vue3 发布后给某培训机构开发了一套vue3课程课件,自己也开源了一套基于vue3的后台管理系统(因为个人懒的原因,半年后才上传到gitHub ...

  9. c#对接每人计平台获取数据

    使用c#对接到晓舟科技的客流统计设备.那么需要先注册一个平台的账号 地址:http://mrd.meirenji.cn/login;JSESSIONID=323cbd18-29ed-4232-8c04 ...

  10. python实现AES加密解密

    1. 前言 AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个. 之前写过一片关于python AES加密解密的文章,但是这里面细节实在很多,这次我从 参数类型.加密模式.编码模式.补全 ...