我正在使用Azure-functions开发一个spring-cloud-function。是否可以在“处理程序”(扩展AzureSpringBootRequestHandler)中使用任何spring托管组件?
我尝试通过示例项目来缩小范围: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管理的,并且不能与自动装配一起工作。如果能得到一些帮助就太好了,谢谢!
发布于 2020-11-23 22:12:40
您正在尝试在Azure函数HTTP请求处理程序(特定于云提供商的一个非常薄的适配器)中使用Spring自动连接,该适配器在Spring函数外部解耦。这就是它在那里不起作用的原因。适配器中不应该有任何业务逻辑。但是,如果您在任何Spring控制器/服务中使用DI,它的工作方式就像在常规Spring引导应用程序中一样。
您可以查看这篇方便的博客文章Playing with Spring Cloud in Azure Functions。
https://stackoverflow.com/questions/64967353
复制相似问题