在没有 spring 的 java 项目中使用服务层函数

Using service layer functions in a java project without spring

我正在 java 中编写一个 azure 函数。为了使用良好的模块化模式,我创建了一个具有抽象接口 classes 的服务层和一个实现服务层的 impl 层。

但是,我没有使用 Spring-framework 所以我不能使用 @Autowired 在运行器文件中创建服务层的单例实例。如何在我的运行器 class(或我项目的其他地方)中使用我的服务层函数?

服务层

public interface TimeTriggeredService {

  String getLogs(String token, String url,final ExecutionContext context);
}

实现层

public class TimeTriggeredServiceImpl implements TimeTriggeredService {

  public String getLogs(String token, String url,final ExecutionContext context) {
    // Some logic
  }
}

亚军Class

public class TimeTriggeredFunction {

  @FunctionName("TimeTriggeredFunction")
  public void run(@TimerTrigger(name = "timerInfo", schedule = "0 */1 * * * *") String timerInfo,
      final ExecutionContext context) {
    
    String timeAuditLogs = TimeTriggeredService.getLogs(token, URL ,context);  // unsure what should replace this line or what should be done before this. 
  }
}

注意:这不是 spring 项目。

尚不支持 Java 的依赖注入。 查看 GitHub 相同的问题:#324.

For now, you can use Spring Framework to use Azure Function for HTTP requests only (not the bindings.

Here is a sample of how to use it.

如果您不想使用Spring框架,您将不得不在class中创建一个全局实例并使用它。