我是AWS Lambda的新手。如果我在Java Lambda函数中使用Spring依赖注入框架,那么Spring应用程序上下文的初始化方式和时间是什么?
答案 0 :(得分:3)
使用Spring注入框架相当重,并且可能不是lambda的最佳选择。 (编辑:根据Jeff的评论,lambdas应该是相当小的和自包含的工件 - 如果你开始发现自己有一个大的对象层次结构,考虑多个lambdas或lambda解决方案是否对你的服务最有意义)。
对于您的问题,当首次调用lambda时,应用程序上下文将像传统服务一样初始化,并且可以存储在本地并重用。但是,根据您调用lambda的频率,不能保证重用,并且组件最终可能会经常重新初始化。基本上,使用Spring可以避免使用lambdas。
作为替代方案,AWS建议在Dagger中使用更加轻量级的框架,例如Guice或best practices。
答案 1 :(得分:0)
AWS lambda请求处理程序不是Spring组件,我认为没有一种简单的方法可以将它们组件化,这使得DI成为一个问题。有多种方法解决这个问题,但我发现以下帖子中描述的解决方案至少是“神奇的”:Just Spring-enabled AWS Lambdas