Premesso che se il file è relativamente piccolo, "tirar su" un array di byte con l'intero contenuto del file non è un grosso problema. Diverso sarebbe se il file fosse di svariati megabyte (e specialmente se ci fossero molte richieste concorrenti per un download di quel tipo).
Ci sono comunque altre tecniche per non dover tirar su l'intero file.
Comunque dato che usi Spring, ti basta indicare il content-type in uscita usando l'attributo produces di @RequestMapping.
@RequestMapping(value = "/std/service/file", method = RequestMethod.GET, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
(MediaType è il org.springframework.http.MediaType, da importare, chiaramente). Invece di mettere la costante di MediaType, puoi anche mettere direttamente "application/octet-stream" , è lo stesso.
Questo, di fatto, "forza" un browser a fare il download.