It may be possible to compress the download using GZip and a servlet filter. If you use the Google keywords gzip servlet filter you should find examples, because this example shows up in almost every tutorial about servlet filters.
I hardly know anything about Spring, so I don't know how you use a servlet filter in Spring. Or whether Spring already has this (GZip) built in as an option.
And it's possible that your download data won't be compressed if you use GZip because it's already in some compressed format -- all we know is that you have a large download.
subject: how to increase the download speed in the following scenario ?