Solon v2.2.12 发布,Java 应用开发框架

Posted 带刺的坐椅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solon v2.2.12 发布,Java 应用开发框架相关的知识,希望对你有一定的参考价值。

Solon 是一个高效的 Java 应用开发框架:更快、更小、更简单。它不是 Spring、没有使用 Servlet、JavaEE 接口,是一个有自己接口标准的开放生态:

  • 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.aot 插件(已可试用)
  • 新增 simplejavamail-solon-plugin 插件
  • 新增 sms4j-solon-plugin 插件
  • 新增 pulsar2-solon-plugin 插件
  • 新增 drools-solon-plugin 插件
  • 新增 solon.web.sdl 插件替代 solon.web.sso(之前名字搞错了)
  • 插件 solon.boot.jetty 增加 jetty-servlet 依赖(solon.boot.jetty.add.servlet 就不需要了)
  • 插件 solon.boot.jlhttp 优化线程不够时会处理方式
  • 插件 solon.boot.sockted.jdksocket 优化线程不够时会处理方式
  • 插件 solon.boot.smarthttp 优化二级池线程不够时会处理方式
  • 插件 solon-maven-plugin 打包机制,支持 scope system 包编译
  • 增加 Utils::isEmpty(Collection s) 接口
  • 增加 solon cloud i18n 默认值配置支持
  • 增加 @Configuration + @inject 支持配置变更事件的注入
  • 增加 solon.cloud/Config:_Props 申明为非序列化字段
  • 增加 三个 http server 通过事件扩展的支持,比如定制执行服务
  • 增加 @Inject("$demo:hello") 有默认值的配置注入支持自动更新
  • 调整 sa-token dao 适配代码,优化相同key在多线程下的并发问题
  • 调整 InvocationRunnableFactory::create 允许返回为 null,即自己直接执行
  • 调整 @Init 的索引策略与 LifecycleBean 相同:+1
  • 调整 根路由支持 remove 监听记录
  • mybatis-flex 升为 1.1.3
  • mybatis-plus 升为 3.5.3.1
  • undertow 升为 2.2.24.Final
  • jetty 升为 9.4.51.v20230217
  • fastjson2 升为 2.0.28
  • beetlsql 升为 3.22.0-RELEASE
  • redisx 升为 1.4.7
  • snack3 升为 3.2.66,支持 Charset 类型注入

项目仓库:

Solon 生态插件清单

Solon 是一个微型的Java开发框架。强调,克制 + 简洁 + 开放的原则;力求,更小、更快、更自由的体验。支持:RPC、REST API、MVC、Micro service、WebSocket、Socket 等多种开发模式。

Solon Cloud 是一系列的接口标准和配置规范,算是 Solon 的分布式开发套件方案。

本次整理的插件清单主要包括:

  • Solon Rpc Client 插件(代号:Nami)
  • Solon 插件
  • Solon SocketD 插件
  • Solon Cloud 插件

清单明细

1、Solon Rpc Cleint 插件(代号:Nami)

插件 说明
nami插件:: 说明
nami.coder.fastjson fastjson的编解码适配
nami.coder.hessian hessian的编解码适配
nami.coder.snack3 snack3的编解码适配
nami.coder.protostuff protostuff的编解码适配
nami.channel.http.okhttp okhttp的通道适配
nami.channel.http.hutool hutool http的通道适配
nami.channel.socketd socketd的通道适配(适配后,可使用org.noear:solon.sockted.client.* 做为客户端)

2、Solon 插件

插件 说明
boot插件:: 说明
org.noear:solon.boot.jlhttp* boot插件,对jlhttp适配,提供http服务(不自带session state)
org.noear:solon.boot.smarthttp boot插件,对smart-http适配,提供http服务(不自带session state)
org.noear:solon.boot.jetty* boot插件,对jetty适配,提供http服务(网友@khb提供)
org.noear:solon.extend.jetty.jsp 扩展插件,为jetty添加jsp支持(不建议使用jsp)(网友@khb提供)
org.noear:solon.extend.jetty.websocket 扩展插件,为jetty添加websocket支持(网友@khb提供)
org.noear:solon.boot.undertow* boot插件,对undertow适配,提供http服务(网友@tyk提供)
org.noear:solon.extend.undertow.jsp 扩展插件,为undertow添加jsp支持(不建议使用jsp)(网友@tyk提供)
org.noear:solon.boot.websocket boot插件,对java-websocket适配,提供websocket服务
静态文件支持插件:: 说明
org.noear:solon.extend.staticfiles 扩展插件,添加静态文件支持(监视 resources/static 文件夹)
切面支持插件:: 说明
org.noear:solon.extend.aspect 扩展插件,添加Dao、Service注解支持;进而支持事务和缓存注解
Yaml配置支持插件:: 说明
org.noear:solon.extend.properties.yaml 扩展插件,添加yml配置文件支持
数据辅助插件:: 说明
org.noear:solon.extend.data 扩展插件,添加事件(@Tran)、缓存(@Cache)支持
分布式开发规范定义插件:: 说明
org.noear:solon.cloud 扩展插件, 添加Solon Cloud 的接口定义及配置规范
验证支持插件:: 说明
org.noear:solon.extend.validation 扩展插件,添加验证注解(@Valid)支持
远程停止插件:: 说明
org.noear:solon.extend.stop 扩展插件,提供安全的远程停止支持
缓存插件:: 说明
org.noear:solon.cache.spymemcached 扩展插件,完成memcached的缓存服务适配
org.noear:solon.solon.cache.jedis 扩展插件,完成redis的缓存服务适配
jsr插件:: 说明
org.noear:solon.extend.jsr303 扩展插件,完成jsr303 bean 验证支持
org.noear:solon.extend.jsr330 扩展插件,完成jsr330 组件与注入支持
Web跨域插件:: 说明
org.noear:solon.extend.cors 扩展插件,完成Web跨域注解(@CrossOrigin)支持
Session插件:: 说明(可将boot插件的session state服务,自动换掉)
org.noear:solon.extend.sessionstate.jwt 扩展插件,分布式session(基于jwt构建)
org.noear:solon.extend.sessionstate.local 扩展插件,本地session
org.noear:solon.extend.sessionstate.redis 扩展插件,分布式session(其于redis构建)
日志插件:: 说明
org.noear:solon.logging 扩展插件,添加日志支持
org.noear:solon.logging.impl 扩展插件,添加Slf4j日志支持
序列化插件:: 说明
org.noear:solon.serialization.fastjson* 序列化插件,对 fastjson 适配,提供json视图输出 或 序列化输出
org.noear:solon.serialization.snack3* 序列化插件,对 snack3 适配,提供json视图输出 或 序列化输出
org.noear:solon.serialization.hession* 序列化插件,对 hession 适配,提供 hession 序列化输出
org.noear:solon.serialization.jackson 序列化插件,对 jackson 适配,提供json视图输出 或 序列化输出
org.noear:solon.serialization.protostuff 序列化插件,对 protostuff 适配,提供protostuff视图输出 或 序列化输出
视图插件:: 说明(可置多个视图插件)
org.noear:solon.view.freemarker* 视图插件,对 freemarker 适配,提供html视图输出
org.noear:solon.view.jsp 视图插件,对 jsp 适配,提供html视图输出
org.noear:solon.view.velocity 视图插件,对 velocity 适配,提供html视图输出
org.noear:solon.view.thymeleaf 视图插件,对 thymeleaf 适配,提供html视图输出
org.noear:solon.view.beetl 视图插件,对 beetl 适配,提供html视图输出
org.noear:solon.view.enjoy 视图插件,对 enjoy 适配,提供html视图输出

3、Solon SocketD 插件

插件 说明
SocketD boot插件:: 说明
org.noear:solon.boot.socketd.jdksocket sockted boot插件,对jdksocket适配,提供socketd服务
org.noear:solon.boot.socketd.netty sockted boot插件,对netty适配,提供socketd服务
org.noear:solon.boot.socketd.rsocket sockted boot插件,对rsocket适配,提供socketd服务
org.noear:solon.boot.socketd.smartsocket sockted boot插件,对smart-socket适配,提供socketd服务
org.noear:solon.boot.socketd.websocket sockted boot插件,对websocket适配,提供socketd服务
SocketD client 插件:: 说明
org.noear:solon.sockted 扩展插件,sockted 协议的编解码、会话等基础支持
org.noear:solon.sockted.client.jdksocket 扩展插件,sockted 协议的 jdksocket 客户端适配
org.noear:solon.sockted.client.netty 扩展插件,sockted 协议的 netty 客户端适配
org.noear:solon.sockted.smartsocket 扩展插件,sockted 协议的 smartsocket 客户端适配
org.noear:solon.sockted.websocket 扩展插件,sockted 协议的 websocket 客户端适配

4、Solon Cloud 插件

插件 说明
org.noear:consul-solon-plugin consul 适配插件(支持Solon cloud 配置服务、注册与发现服务)
org.noear:nacos-solon-plugin nacos 适配插件(支持Solon cloud 配置服务、注册与发现服务)
org.noear:zookeeper-solon-plugin zookeeper 适配插件(支持Solon cloud 配置服务、注册与发现服务)
org.noear:water-solon-plugin water 适配插件(支持Solon cloud 配置、注册与发现、事件、日志、跟踪、等服务)
org.noear:rabbitmq-solon-plugin rabbitmq 适配插件(支持Solon cloud 事件总线服务)
org.noear:rocketmq-solon-plugin rocketmq 适配插件(支持Solon cloud 事件总线服务)
org.noear:mqtt-solon-plugin mqtt 适配插件(支持Solon cloud 事件总线服务)
org.noear:kafka-solon-plugin kafka 适配插件(支持Solon cloud 事件总线服务)
org.noear:guava-solon-plugin guava 适配插件(支持Solon cloud 融断服务)
org.noear:sentinel-solon-plugin sentinel 适配插件(支持Solon cloud 融断服务)
org.noear:semaphore-solon-plugin semaphore 适配插件(支持Solon cloud 融断服务)
org.noear:aliyun-oss-solon-plugin aliyun-oss 适配插件(支持Solon cloud 分布式文件服务)
org.noear:aws-s3-solon-plugin aws-s3 适配插件(支持Solon cloud 分布式文件服务)
org.noear:snowflake-id-solon-plugin snowflake 算法适配插件(支持Solon cloud 分布式ID服务)

5、其它适配插件

插件 说明
org.noear:beetlsql-solon-plugin beetlsql 适配插件
org.noear:mybatis-solon-plugin mybatis 适配插件
org.noear:mybatis-sqlhelper-solon-plugin mybatis-sqlhelper 适配插件
org.noear:weed3-solon-plugin weed3 适配插件
org.noear:cron4j-solon-plugin cron4j 适配插件
org.noear:quartz-solon-plugin quartz 适配插件
org.noear:dubbo-solon-plugin dubbo 适配插件
org.noear:feign-solon-plugin feign 适配插件
org.noear:hasor-solon-plugin hasor 适配插件
org.noear:luffy-solon-plugin luffy 适配插件
org.noear:sureness-solon-plugin sureness 适配插件
org.noear:solon-springboot-starter springboot 适配插件

附:项目地址

附:入门示例

以上是关于Solon v2.2.12 发布,Java 应用开发框架的主要内容,如果未能解决你的问题,请参考以下文章

Solon v2.2.6 发布,助力信创国产化

一个小而美Java开发框架Solon 1.1发布,QPS达10万+

Solon 框架,单月下载量超100万了!!!

Solon 生态插件清单

Parallel Geoscience Seismic Processing Workshop(SPW) v2.2.12地震数据处理

Solon 的过滤器 Filter 和两种拦截器 Handler Interceptor