领先一步
VMware 提供培训和认证,助您加速进步。
了解更多今天,我怀着对未来的乐观展望,宣布 Spring Social 项目停止维护。在过去八年里,我非常荣幸能参与到这个项目中。
随着 Spring Security 5 的发布,Spring Social 连接框架(我认为这是 Spring Social 最有价值的部分)提供的大部分功能现在已成为 Spring Security 的一部分。事实上,我曾在 3 月份的博客文章中分享过如何使用 Spring Security 对客户端 OAuth2 的新支持。随着 Spring Security 不断发展其客户端 OAuth 支持,Spring Social 的连接框架将变得越来越不必要。将 Spring 的 OAuth 故事分散在如此多的项目中已经不再有意义——是时候为 Spring 开发者提供一个统一的、连贯的 OAuth 故事了。
但是 Spring Social 的 API 绑定呢?
此“生命周期终止”公告也涵盖 Spring Social 的 API 绑定,包括 Facebook、Twitter 和 LinkedIn 的 API 绑定。
Spring Social 的 API 绑定最初只是为了展示如何使用连接框架生成的连接。但后来它们不断发展,并有了自己的生命。
虽然 API 绑定通常对需要与它们所服务的 API 交互的应用程序很有用,但它们对于实际使用来说相当庞大、复杂且笨重。就此而言,Facebook API 绑定提供了大约 180 种不同的操作,尽管很少有应用程序需要其中超过六种操作。
事实也证明,让 API 绑定与它们所服务的 API 保持同步是很困难的。随着 API(例如 Facebook 的 Graph API)不断发展,Spring Social 的 API 绑定需要重新审视(在某些情况下需要完全重写并进行重大更改),以保持与各自 API 的兼容性。考虑到上述 API 绑定的大小,这需要巨大的开发和测试工作——对于最初只是为了演示如何编写 API 绑定的东西。
最后,现在 Spring Framework 5 为 Spring 开发者带来了反应式编程模型,人们对 Spring Social API 绑定的反应式对应物有了需求。虽然这当然是可能且可以理解的,但它需要与现有 API 绑定大小成比例的工作量,并且基本上复制了非反应式 API 绑定中提供的大多数操作。这将有效地使 API 绑定的大小翻倍,使得此类绑定的维护更具挑战性。
相反,我建议应用程序开发者自己编写 API 绑定实现。这样做,您将能够使用更专注于应用程序需求的 API 绑定,并且比 Spring Social 提供的庞大 API 绑定更容易维护。此外,如果您希望在 API 绑定中应用反应式类型,欢迎您这样做。我在 3 月份发表的文章中提出了一个方法。
Spring Social 不会立即消失。我打算继续处理小错误修复,并根据需要发布维护版本。但除非有重大且令人信服的需求,否则目前没有计划发布任何 Spring Social 的后续 GA 版本。
Spring Social(以及上述 Spring Social API 绑定模块)将从今天起继续支持 12 个月,支持期将于 2019 年 7 月 3 日结束。
我衷心感谢过去 8 年来所有与 Spring Social 合作并做出贡献的人。这是一个有趣的项目,我怀着一丝悲伤宣布它最终将走向终结。请放心,这不是一个轻率的决定。但我鼓励您查看 Spring Security 5 的客户端 OAuth 支持,并继续通过建议和拉取请求与我们合作,帮助编写 Spring OAuth 故事的这一新篇章。