本地或远程存储库,具体取决于配置

时间:2019-04-30 16:32:37

标签: java spring

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

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

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

我的问题是如何构建我的项目。我想到了类似下面的代码。我将把MovieRepo的两个实现之一(LocalRepo或RemoteRepo)注入到Flag中指定的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>{

}

MovieService.class

public class MovieService{
MovieRepository MovieRepository;


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

}

0 个答案:

没有答案