Solon v3.0.1

Solon v2.8 更新与兼容说明

</> markdown

兼容说明

404 和 405 等 4xx 状态的“定制”,通过 StatusException 处理(如果没有定制,不用管)。例如:

  • 旧的 404 识别(比较模糊)
@Component(index = 0) //index 为顺序位(不加,则默认为0)
public class AppFilter implements Filter {
    @Override
    public void doFilter(Context ctx, FilterChain chain) throws Throwable {
        chain.doFilter(ctx);

        if(ctx.getHandled() == false){
            ctx.render(Result.failure(404, "资源不存在"));
        }
    }
} 
  • 新的 SolonTest 注解默认使用 junit5,并做了简化

具体参考文档:Solon Test 开发

  • 新的 404 识别(更丰富,更精准)
@Component(index = 0) //index 为顺序位(不加,则默认为0)
public class AppFilter implements Filter {
    @Override
    public void doFilter(Context ctx, FilterChain chain) throws Throwable {
        try{
            chain.doFilter(ctx);
        } catch (StatusException e) {
            if (e.getCode() == 404){
                ctx.render(Result.failure(404, "资源不存在"));
            } else if (e.getCode() == 405){
                ctx.render(Result.failure(405, "资源方式不支持"));
            } else if (e.getCode() == 400){
                ctx.render(Result.failure(400, "请求格式或参数有问题"));
            }
        }
    }
} 

更多异常类型,可见:《Solon 开发之异常》。另一处重要变化为 JUnit5 成为默认单测方案,详见:《Solon Test 开发》

更新说明

  • 新增 thrift-solon-cloud-plugin 插件
  • 新增 solon.serialization.jackson.xml 插件
  • 添加 @Destroy 注解(与 @Init 呼应)
  • 添加 Serializer 接口,统一多处模块的序列化定义
  • 添加 BytesSerializerRender 类,对应 StringSerializerRender
  • 添加 solon.net.stomp ToStompWebSocketListener 适配 WebSocket 子协议验证
  • 添加 solon.net ToSocketdWebSocketListener 适配 WebSocket 子协议验证
  • 添加 graphql-solon-plugin GraphqlWebsocket 适配 WebSocket 子协议验证
  • 添加 WebSocket 子协议校验支持(smarthttp,jetty,undertow,java-websocket,netty-websocket)
  • 添加 应用配置键名二次引用支持
  • 添加 folkmq 适配 EventLevel.instance 订阅支持
  • 添加 rocketmq5 适配 EventLevel.instance 订阅支持
  • 添加 solon.boot.socketd 对 ssl 配置的支持
  • 添加 beetl 适配自定义 Tag 注入支持
  • 添加 enjoy 适配自定义 Tag 注入支持
  • 添加 StatusException 异常类型
  • 调整 AuthException 改为扩展自 StatusException(之前为 SolonException)
  • 调整 ValidatorException 改为扩展自 StatusException(之前为 SolonException)
  • 调整 Action 参数解析异常类型为 StatusException(之前为 IllegalArgumentException)
  • 调整 solon.test 默认为 junit5 并简化 SolonTest 体验(不用加 ExtendWith 了),需要 junit4 的需引入 solon-test-junit4
  • 优化 CloudClient.event().newTranAndJoin() 增加 inTrans 判断
  • 优化 mybatis-solon-plugin 在有 mapper 配置,但无 mapper 注册时的异常提示(原为 warn 日志提示)
  • 优化 RouteSelectorExpress 的路由顺序(常量的,优于变量的)
  • 优化 kafka 适配的 ack 处理
  • 修复 IndexUtil:buildGatherIndex 处理字段时,会出错的问题
  • snack3 升为 3.2.100
  • fastjson2 升为 2.0.51
  • socket.d 升为 2.5.3
  • folkmq 升为 1.5.2
  • wood 升为 1.2.11
  • sqltoy 升为 5.6.10.jre8
  • mybatis-flex 升为 1.9.1
  • smarthttp 升为 1.4.2
  • okhttp 升为 4.12.0
  • xxl-job 升为 2.4.1
  • graphql 升为 18.3