首页 > 解决方案 > 本地或远程存储库取决于配置

问题描述

我正在创建 api,它将提供有关电影的信息。我想从两个来源获取有关电影的信息:

  1. 将填充一些示例数据的数据库
  2. 远程 API

我将在属性文件中有标志,例如 fetch_from_remote = true/false;

我的问题是如何构建我的项目。我想到了类似下面的代码。我将根据标志将 MovieRepo(LocalRepo 或 RemoteRepo)的两个实现之一注入到 MovieService。但是我不确定它是否会起作用,以及它是否是好的方法?你有什么建议/更好的想法吗?

MovieController.class

public class MovieController{
    MovieService MovieService;

     Movie getMovie(int id){
         MovieService.getMovie(id);
     }
}

MovieRepository.class

public interface MovieRepository{

    Movie getMovie(int id);
}

RemoteRepo.class

public class RemoteRepo implements MovieRepoisotry (

        public getMovie(int id){
            // implemenatation to connect to remotApi and fetchData
        }
)

LocalRepo.class

public interface LocalRepo extends  MovieRepository,JpaRepository<ChatMessage, Integer>{

}

电影服务类

public class MovieService{
MovieRepository MovieRepository;


public getMovie(int id){
    MovieRepository.getMovie(id);
}

}

标签: javaspring

解决方案


推荐阅读