Solon v2.9 更新与兼容说明
v2.9 为 v3.0 的过渡版本。会对一些接口做调整和优化。
兼容说明
- 内部插件采用 "-" 替代之前的 "."(旧包保留)
- 简化快捷方式,只保留:solon-lib 和 solon-web(solon-api,solon-rpc,solon-job 等...移除了)
之前快捷包太多,不好选择。新的方式,只保留基础的(根据业务在上面加)。
- 部分插件移除
旧包 | 新包 | 备注 |
---|---|---|
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 | ||
solon.cloud.httputils | 将由 solon-net-httputils 替代 |
- 部分插件更名(旧包,仍可用)
旧包 | 新包 | 备注 |
---|---|---|
solon.auth | solon-security-auth | |
solon.validation | solon-security-validation | |
solon.vault | solon-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