JAVA + Azure函数中的依赖注入(IoC)

时间:2020-03-05 15:09:50

标签: java azure azure-functions inversion-of-control

我正在使用用Java编写的Azure函数来从REST API检索数据并将其插入mongo数据库。 我正尝试将应用程序划分为不同的层次,就像通常对Web应用程序所做的那样-目前,我只提取了将数据存储在mongo中的存储库到一个单独的类中,所以我的函数类如下所示(省略了触发器,错误处理等)

public class SensorFunctions {

    @FunctionName("saveSensors")
    public void saveSensors(
        final ExecutionContext context) {
        SensorRepository sensorRepository = new SensorRepository();
        new SensorAPI().retrieveSensors()
            .forEach(sensorRepository::saveSensor);
    }
}

我更喜欢使用IoC机制中的王者,所以我不必自己实例化笔迹和其他类,但是我可以做类似

public class SensorFunctions {
    @Inject
    SensorRepository sensorRepository;

    @Inject
    SensorAPI sensorAPI;

    @FunctionName("saveSensors")
    public void saveSensors(
        final ExecutionContext context) {
        sensorAPI.retrieveSensors()
            .forEach(sensorRepository::saveSensor);
    }
}

Azure功能可以吗?是这样,是否有可能创建自动配置,还是我需要在每个功能的开头手动触发IoC容器的配置(我将在一个项目中拥有多个功能)。 由于成本取决于函数的计算时间,因此我更希望使用轻量级的解决方案

1 个答案:

答案 0 :(得分:1)

现在,您可以使用Spring Framework将Azure Function仅用于HTTP请求(不能用于绑定)。

Here是有关如何使用它的示例

我知道现在正在进行一项工作,以支持Azure功能enter link description here的依赖注入