java - 在 springboot aws lambda 中注入(inject)服务

标签 java spring amazon-web-services spring-boot aws-lambda

我正在构建一个基于 lambda 的 on this code

uppercaseService 是这样“注入(inject)”的:

@Component("uppercaseFunction")
public class UppercaseFunction implements Function<UppercaseRequest, UppercaseResponse> {

private final UppercaseService uppercaseService;

public UppercaseFunction(final UppercaseService uppercaseService) {
    this.uppercaseService = uppercaseService;
}

在我尝试在 UppercaseService 中注入(inject)另一个服务之前,一切正常。

@Service
public class UppercaseService {

    @Autowired
    MyService myService;

    public String uppercase(final String input) {
        myService.doSomething();
        return input.toUpperCase(Locale.ENGLISH);
    }
}

AWS 控制台返回:

"errorMessage": "Error creating bean with name 'uppercaseService': Unsatisfied dependency expressed through field 'myService'

此服务在非 lambda 上下文中工作。该类存在于使用 maven 包构建的 .jar 中。

我尝试了@ https://www.profit4cloud.nl/blog/just-spring-enabled-aws-lambdas 的解决方案没有成功。

最佳答案

您必须先初始化您的MyService bean。由于您的 MyService 来自外部服务,它很可能具有与您自己的包不同的包

或者直接:

@SpringBootApplication
public class UpperFunctionApplication {

    @Bean
    public MyService myService() {
       return new MyService(); // You must provide code to construct new MyService bean
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(UpperFunctionApplication.class, args);
    }
}

或通过组件扫描:

@SpringBootApplication(scanBasePackageClasses = {UpperFunctionApplication.class, MyService.class})
public class UpperFunctionApplication {

    @Bean
    public MyService myService() {
       return new MyService(); // You must provide code to construct new MyService bean
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(UpperFunctionApplication.class, args);
    }
}

关于java - 在 springboot aws lambda 中注入(inject)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50449673/

相关文章:

java - 如何让Java驱动/控制webkit/gecko?

java - 如何将信息存储在 float 中并使其可重复使用?

java - solr autoSoftCommit 将打开新的搜索器?

java - HelloWorld Spring 应用程序在线程 "main": java. lang.NoClassDefFound 中抛出异常

java - 在非实体 java bean 中映射多个 hibernate 实体

java - Python 更改 Java 可执行文件的输出文件夹

java - Spring 和 Hibernate 配置

c# - 用户友好的 Jenkins CI 作业计划格式

amazon-web-services - AWS 上的 Websocket 连接总是导致 TOO MANY REQUESTS 即使是一个请求

amazon-web-services - 在 AWS 上将 impdp/expdp 与 RDS Oracle 结合使用