spring-cloud函数可以访问任何spring-managed组件吗



我正在开发一个带有Azure函数的spring-cloud函数。是否可以在";处理程序";(扩展AzureSpringBootRequestHandler(?

我试图通过示例项目缩小范围:https://github.com/spring-cloud/spring-cloud-function/tree/master/spring-cloud-function-samples/function-sample-azure

所以我能想到的最简单的例子是:

public class UppercaseHandler extends AzureSpringBootRequestHandler<String, String> {
private final UppercaseService uppercaseService;
@Autowired
public UppercaseHandler (UppercaseService uppercaseService){
this.uppercaseService = uppercaseService;
}
@FunctionName("uppercase")
public String execute(@HttpTrigger(name = "req", methods = {HttpMethod.GET,
HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,
ExecutionContext context) {
return handleRequest(request.getBody().get(), context);
}
}

然而,看起来这个处理程序不是由spring管理的,也不适用于自动布线。如果能得到一些帮助就太好了,谢谢!

您正试图在Azure Function HTTP请求处理程序(一个特定于云提供商的非常瘦的适配器(中使用Spring自动连接,该处理程序在Spring函数之外解耦。这就是为什么它在那里不起作用。适配器中不应该有任何业务逻辑。但是,如果您在任何Spring控制器/服务中使用DI,它将像在常规的Spring引导应用程序中一样工作。

您可以查看这篇方便的博客文章在Azure函数中使用Spring Cloud。

相关内容

  • 没有找到相关文章

最新更新