Java aws lambda函数与spring自连线依赖项

Java aws lambda函数与spring自连线依赖项,java,spring,amazon-web-services,amazon-s3,aws-lambda,Java,Spring,Amazon Web Services,Amazon S3,Aws Lambda,在amazon aws lambda中执行代码时,my@autowired spring依赖项为空。如果没有加载上下文,这是有意义的,但我认为SpringBeanAutowiringSupport会有所帮助。如何在amazon lambda中正确注入依赖项 这是我的代码,它有空的自动连线字段,但在其他方面工作正常(如果我用新的替换自动连线: @Component public class ApplicationEventHandler { @Autowired private Foo foo;

在amazon aws lambda中执行代码时,my@autowired spring依赖项为空。如果没有加载上下文,这是有意义的,但我认为SpringBeanAutowiringSupport会有所帮助。如何在amazon lambda中正确注入依赖项

这是我的代码,它有空的自动连线字段,但在其他方面工作正常(如果我用新的替换自动连线:

@Component
public class ApplicationEventHandler {

@Autowired
private Foo foo;


         public ApplicationEventHandler() {
             logger.info("I'm sure the constructor is being called");
            SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
             //doesn't seem to help
         }

         public void deliveryFailedPermanentlyHandler(SNSEvent event, Context context) throws IOException {
             foo.doStuff() // causes NPE

         }

提前感谢!

github上的这个项目为我正在尝试的工作提供了一个很好的模板:

谈论DI:

最小化依赖项的复杂性。更喜欢简单的依赖项 在启动时快速加载的框架 例如,更喜欢简单的Java依赖项注入(IoC)框架 像或,比更复杂的像

因此,我建议您使用(因为Square的Dagger 1.x已经被弃用了)。它提供了以下好处:

  • 轻量级框架,集成很少,Java接口/注释配置和编译时代码生成绑定
  • 非常小的尺寸
  • 尽早失败(编译时,而不是运行时)
  • 性能-与手写代码一样快,并且不需要在框架中进行编码

您好!我建议您也看看这个框架:我认为AWS lamda不像spring感知的servlet容器那样执行您的代码是有道理的,因此没有应用程序上下文,也不会发生依赖项注入。Lamba应该是小的工作单元,所以如果您需要更复杂的应用程序,可以使用lambda函数ion应该调用在另一个平台上运行的Web服务。在Spring中,您的类由Spring本身启动,然后扫描所有DI注释以提供依赖项。AWS运行时不做这样的事情,这就是为什么不计算注释的原因。这是一种没有“魔力”的简单方法参与:我刚刚测试了Attila T所说的话,它起了作用。Thx伙计!