Solon

Solon v2.x 更新与兼容说明

</> markdown

预告:Solon 2.0.0 版本,计划 2023年2月2日发布!新年新气象,新年新成长:)

1、纪年

  • v0: 2018 ~ 2019 (2y)
  • v1: 2020 ~ 2022 (3y)
  • v2: 2023 ~

2、v1.x 升到 v2.x 提醒

v2.x 的六点规划,其中四点已经在v1.x完成了(为了过度更自然)。升级是个自然的过程,只是删除了v1.x积累的弃用代码;以干净的资态,迎接新的进化。具体升级,可能会有“显示”的编译错误,调整部分代码即可:

  • 提醒1:之前没有使用弃用接口的,可以直接升级
  • 提醒2:有使用弃用接口的。建议先升级到 1.12.4;替换弃用代码后,再升级到 2.0.0(也可以直接升级,按编译错误提示修改)

v2.x 未完成的二点规划:

  • 提供便利的AOT编译帮助
  • 增加响应式支持(在原有体验不变的情况下)

3、v2.0.0 (主要删除弃用代码)

打磨多年,总会有早期想不周到的地方。(像修仙小说那样,升个大级)去除杂质,全新进化:

  • 调整 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.web.staticfiles//
    • 删除 StaticMappings::add(string1,bool2,repository3) 接口;由 StaticMappings::add(string1,repository2) 替代
    • 说明 string1 ,有'/'结尾表示目录,无'/'结尾表示单文件
  • 调整 solon.cloud//
    • 删除 Media::bodyAsByts()..;由 ::bodyAsBytes() 替代
  • 调整 solon.cloud.httputils//
    • 删除 cloud.HttpUtils::asShortHttp()..;由 ::timeout() 替代
  • 调整 solon.test//
    • 删除 test.HttpUtils::exec2()..;由 ::execAsCode()..替代
    • 删除 @Rollback;由 @TestRollback 替代
  • 调整 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 常量