Solon v3.0.0

Solon v2.9 更新与兼容说明

</> markdown

v2.9 为 v3.0 的过渡版本。会对一些接口做调整和优化。

兼容说明

之前快捷包太多,不好选择。新的方式,只保留基础的(根据业务在上面加)。

  • 部分插件移除
旧包新包备注
solon.testsolon-test
solon.web.fluxsolon-web-rx
detector-solon-pluginsolon-health-detector
log4j2-solon-pluginsolon-logging-log4j2
logback-solon-pluginsolon-logging-logback
solon.extend.schedule
solon.cloud.httputils 将由 solon-net-httputils 替代
  • 部分插件更名(旧包,仍可用)
旧包新包备注
solon.authsolon-security-auth
solon.validationsolon-security-validation
solon.vaultsolon-security-validation
  • Web Context 的变化
操作
ctx.paramsMap()弃用ctx.paramMap()
ctx.paramsAdd(name,value)弃用由 ctx.paramMap().add() 替代
ctx.paramSet(name,value)弃用由 ctx.paramMap().add() 或 .put() 替代
ctx.headersMap()弃用ctx.headerMap()
ctx.filesMap()弃用ctx.fileMap()
ctx.files(name)弃用由 ctx.fileValues(name) 替代
ctx.paramMap():NvMap调整ctx.paramMap():MultiMap
ctx.headerMap():NvMap调整ctx.headerMap():MultiMap
ctx.cookieMap():NvMap调整ctx.cookieMap():MultiMap
ctx.fileMap():NvMap调整ctx.fileMap():MultiMap
ctx.paramNames()新增
ctx.headerNames()新增
ctx.cookieNames()新增
ctx.cookieValues(name)新增
ctx.fileNames()新增
ctx.fileValues(name)新增

注意:关于 MultiMap (它是一个 Iterable<KeyValues<T>> 实现)的使用,可参考:《XSS 的处理机制参考》。原来通过 Map<String,String> + Map<String, List<String>> 表示一块数据,现在通过 MultiMap<String> 即可,可提高性能减少内存。

更新说明

  • 新增 solon.boot.vertx 插件
  • 新增 solon.cloud.gateway 插件
  • 新增 solon-config-plus
  • 新增 solon.rx 插件
  • 添加 NOTICE
  • 添加 solon @Bean::priority 属性(用于 onMissing 条件时的运行优先级)
  • 添加 solon-cloud-core 的分布式注解开关
  • 添加 solon Context::cookieValues(name) 方法
  • 添加 solon MultiMap 类,用于 Context 能力优化
  • 添加 solon-web-rx 对 ndjson 支持
  • 添加 solon.data 配置节 solon.dataSources(用于自动构建数据源),支持 ENC 加密符
  • 添加 solon.docs 配置节 solon.docs(用于自动构建文档摘要)
  • 添加 solon.view.prefix 配置项支持 "file:" 前缀(支持体外目录)
  • 添加 solon.scheduling.simple SimpleScheduler::isStarted 方法
  • 添加 solon @Condition(onBean, onBeanName) 条件属性
  • 添加 solon.validation ValidUtils 工具类
  • 添加 solon LifecycleBean:postStart 方法
  • 添加 solon MethodInterceptor 接口,替代 Interceptor(旧接口保留)
  • 添加 solon.net.httputils 扩展机制,并与 solon.cloud 自动整合
  • 添加 solon.net.httputils HttpResponse::headerNames 方法
  • 添加 solon.cloud CloudDiscoveryService:findServices 方法
  • 添加 solon solon.plugin.exclude 应用属性配置
  • 添加 solon solon.app.enabled 应用属性配置(Solon.cfg().appEnabled() 可获取)
  • 添加 solon ${.url} 应用属性配置本级引用
  • 添加 solon --cfg 启动参数支持(便于内嵌场景开发)
  • 添加 托管类构造参数注入支持(对 kotlin 更友好)
  • 调整 solon.cloud.httputils 标为弃用,由 solon.net.httputils 替代
  • 调整 smarthttp,jetty,undertow 的非标准方法的 FormUrlencoded 预处理时机
  • 调整 solon.auth maven 包更名为 solon.security.auth (原 maven 包保留)
  • 调整 solon.validation maven 包更名为 solon.security.validation (原 maven 包保留)
  • 调整 solon.vault maven 包更名为 solon.security.vault (原 maven 包保留)
  • 调整 快捷方式只保留:solon-lib 和 solon-web(原 solon-web 去掉 view,方便自选)
  • 优化 AppContext::beanMake 保持与 beanScan 相同的类处理
  • 优化 solon.serialization.jackson 兼容 @JsonFormat 注解时间格式和时间格式配置并存
  • 优化 solon Context::body 的兼容性,避免不可读情况
  • 优化 solon 调试模式与 gradle 的兼容性
  • 优化 solon.boot FormUrlencodedUtils 预处理把 post 排外
  • 优化 solon.web.rx 允许多次渲染输出
  • 优化 kafka-solon-cloud-plugin 添加 username, password 简化配置支持(简化有账号的连接体验)
  • 优化 solon.boot 413 状态处理
  • 优化 solon.boot.smarthttp 适配的 maxRequestSize 设置(取 fileSize 和 bodySize 的大值)
  • 优化 solon AppContext 注册和查找时以 rawClz 为主(避免以接口注册时,实例类型查不到)
  • 优化 solon.mvc kotlin data class 带默认值的注入支持(表单模式下)
  • 优化 solon PathAnalyzer 添加 addStarts 参数选择,支持域名匹配
  • 修复 solon.view.thymeleaf 模板不存在时没有输出 500 的问题
  • 修复 solon.serialization.jackson 泛型注入失效的问题
  • 修复 solon.boot.smarthttp 适配在 chunked 下不能读取 body string 的问题
  • 修复 solon-openapi2-knife4j 没有配置时不能启动的问题(默认改为不启用)
  • 移除 旧包 solon.test(改用 solon-test)
  • 移除 旧包 solon.web.flux(改用 solon-web-rx)
  • 移除 旧包 detector-solon-plugin(改用 solon-health-detector)
  • 移除 旧包 log4j2-solon-plugin(改用 solon-logging-log4j2)
  • 移除 旧包 logback-solon-plugin(改用 solon-logging-logback)
  • 移除 旧包 solon.extend.schedule
  • wood 升为 1.3.0
  • snack3 升为 3.2.109
  • socket.d 升为 2.5.11
  • luffy 升为 1.7.8
  • water 升为 2.14.1
  • zookeeper 升为 3.9.2
  • dromara-plugins 升为 0.1.2
  • kafka_2.13 升为 3.8.0
  • beetlsql 升为 3.30.10-RELEASE
  • beetl 升为 3.17.0.RELEASE
  • mybatis 升为 3.5.16
  • mybatis-flex 升为 1.9.6
  • sqltoy 升为 5.6.20
  • dbvisitor 升为 5.4.3
  • bean-searcher 升为 4.3.0
  • liteflow 升为 2.12.2
  • aws.s3 升为 1.12.769
  • powerjob 升为 5.1.0
  • netty 升为 4.1.112.Final
  • reactor-core 升为 3.6.9
  • reactor-netty-http 升为 1.1.22
  • vertx 升为 4.5.9
  • undertow 升为 2.2.34.Final
  • jetty 升为 9.4.55.v20240627
  • smarthttp 升为 1.5.9