Notification

Restlight1.0.0为不兼容的版本升级,如果你从其他版本升级到该版本可能会需要修改一定量的业务代码,具体包括:

  • 包名修改:之前esa.restlight开头的包将统一以io.esastack.restlight开头
  • 修改自定义ArgumentResolver相关的实现,包括:ArgumentResolverArgumentResolverAdapterArgumentResolverFactoryArgumentResolverAdviceArgumentResolverAdviceAdapterArgumentResolverAdviceFactory等,最新用法请参考参数解析ParamResolverAdvice
  • 修改自定义ReturnValueResolver相关的实现,包括:ReturnValueResolverReturnValueResolverAdapterReturnValueResolverFactoryReturnValueResolverAdviceReturnValueResolverAdviceAdapterReturnValueResolverAdviceFactory等,最新用法请参考返回值解析ResponseEntityResolverAdvice
  • 修改自定义拦截器,包括:HandlerInterceptorInterceptorInterceptorFactoryMappingInterceptorRouteInterceptor等, 最新用法请参考拦截器
  • 修改自定义Filter,最新用法请参考:Filter
  • 其它使用AsyncRequestAsyncResponse的地方,具体请参考术语

Q&A

Q:为何不能兼容之前的版本?
  • 全面支持JAX-RS3.0的需要:Restlight原有的请求处理流程和API设计无法满足JAX-RS3.0标准的需要,因此必须在框架核心逻辑上进行重新的设计和考量,而这势必导致接口无法完全向下兼容。
  • 之前的设计已阻碍框架的进一步演进,比如:用户需要在自定义的异常处理器或过滤器中返回指定的entity、快速失败后返回自定义entity等功能就无法实现,因为响应entity的序列化时机和接口API设计上都存在局限性,以至于在不进行重新设计的情况下永远无法实现该功能。
  • 接口易用性和可理解性的需要。
Q:升级成本高,可以不升级吗?
  • 当然可以,之前版本已经比较稳定,如果出现重大bug我们会在原有版本上及时修复,保证0.x版本在生产环境稳定运行。

Feature

Fix

Optimization