如今, Amazon Web Services (或AWS)是要使用和部署到的基础架构和硬件提供商的最常见选择之一。 许多Spring应用程序已经解决了集成应用程序基础结构和底层的挑战。 这些内部解决方案在设计和实际功能方面在复杂性和复杂程度方面有所不同。 这种解决方案成功的关键因素之一就是团队的熟练程度,这是AWS Java SDK的整体知识和经验。 基于Spring框架的设计和维护方式,Spring引入专用于弥合AWS与我们配置Spring应用程序之间的差距的模块只是时间问题。 我想在本文中讨论采用此相对较新的模块的某些方面,并指出需要期待和需要注意的地方。
什么是Spring Cloud AWS?
让我们从头开始。 从标题可以明显看出, Spring Cloud AWS是Spring Cloud伞项目的一部分。 该项目的重点是使部署或关注于云的Spring应用程序开发人员的工作更加轻松。 Spring Cloud AWS是一个相对较年轻的项目,于2011年2月开始,并于2015年3月初实现了其第一个稳定版本。在撰写本文时,版本1.0.3已可用,其中包含一些有用的功能,值得一试。 那么,哪些AWS产品受支持?
- 亚马逊ElastiCache
- Spring Cache API实施
- 亚马逊简单通知服务
- 通过http进行的元数据驱动的端点映射
- Amazon Simple Queue服务
- Spring Messaging API实现
- 亚马逊关系数据库服务
- 自动创建JDBC数据源
- 亚马逊简单存储服务
- 使用
ResourceLoader
可访问的ResourceLoader
- 使用
- AWS CloudFormation
- 堆栈资源可通过其逻辑名称访问
使用Spring Cloud AWS的原因
显然,该模块不会尝试解决AWS开发工具包已解决的问题。 它试图做的是尝试设置配置Spring应用程序的标准方式,并提供标准Spring API的实现以与AWS服务一起使用并利用其功能。 从我的角度来看,考虑使用此模块有几个原因:
- 简化的应用程序配置
- 通过提供简单的准则和一个XML名称空间(或用于批注驱动的配置的包),可以很容易地按照单一原理将配置分组到一个位置。
- 简化对S3资源的访问
- 到目前为止,这肯定是我最喜欢的功能。
- 支持身份验证链
- 由于对用户进行身份验证的方式因部署应用程序的环境而异,因此以一种您希望其行为方式配置身份验证链的方法非常有用。
- 实例和环境元数据
- 开发人员的另一个不错的功能是能够将实例和环境变量直接注入到Spring组件中。
- 未来版本的巨大潜力
- 由于我没有使用缓存,SNS,RDBMS或队列等任何功能,因此我无法对此进行评论。
这些事情听起来不错,但请记住,该模块还很年轻,如果您或您的团队还不满意迁移代码以充分利用此模块,那么最好先看看该项目的位置接下来的几个月。 我几乎立即注意到的烦恼之一是缺少代理配置选项。 因此,如果您坐在公司代理服务器后面,则可能需要实施一些变通方法以将配置传递到所有正确的位置。
结论
如果您决定在应用程序中包括Spring Cloud AWS模块,则这些只是您可以从中受益的一些功能。 我不得不说,我对该模块的未来感到非常兴奋,并且感到它带来了很多好处,即使有一些缺点,例如我所使用的产品以及我的团队的代理配置。 随着时间的流逝,人们可以期待事情会越来越好。 这篇文章是微系列文章中的第一篇,显示了使用Spring Cloud AWS的好处,我发现将其集成到我目前正在开发的产品中。 在下一篇文章中,我将重点介绍如何克服上述代理配置问题。 敬请关注 :)
翻译自: https://www.javacodegeeks.com/2015/10/spring-and-amazon-web-services.html