Spring REST从另一个类获取列表

时间:2018-03-14 12:22:54

标签: java spring rest

我对Spring和REST API都是新手,但我现在正试图制作一个。所以从我的控制器,我想返回另一个方法在另一个类中返回的文件列表。代码可能会说更多,然后我可以解释:

   @RequestMapping("/backup")
    public @ResponseBody List<FileInfo> backupFiles() {
        return //Here i want to return the list of files
    }

这是我的restController&#34;方法&#34;我想返回一个FileInfo列表,今天它已经存在一个看起来像这样的方法

 private List<String> listBackupFiles() {
    List<FileInfo> files = util.listBackupFilesInLocalDir(localStorage);
    fileNameToSize = files.stream()
                          .collect(toMap(f -> f.name, f -> f.size));
    return files.stream()
                .map(f -> f.name)
                .collect(toList());
}

所以基本上,我想当有人去/backup时我希望上面的方法触发并将文件列表返回给我的restController,然后将其返回给请求者。我不知道这是否可能,或者是否有更好的方法来做到这一点。我会就如何解决这个问题提出任何建议。

1 个答案:

答案 0 :(得分:1)

控制器将是:

  // @RestController = @Controller + @ResponseBody
  @RestController
    public class BackupController {  

        @Autowired
        private BackupService backupService;

        // you don't need @ResponseBody as you use @RestController
        @RequestMapping("/backup")
        public List<FileInfo> backupFiles() {
            return backupService.listBackupFiles()
        }
    }

服务界面将是:

public interface BackupService {

     public List<FileInfo> listBackupFiles();
}

服务实施将是:

@Service
public class BackupServiceImpl implements BackupService {

    public List<FileInfo> listBackupFiles() {
        // localStorage come from
        // maybe Util has it as static method, else inject it
        return util.listBackupFilesInLocalDir(localStorage);
    }
}

希望很有帮助:)