Futures aren't a natural way to formulate many important concurrency problems. If I want a thread polling an external system and putting records in a work queue for as long as my application is running... well, what's that a future of?
@Scheduled(fixedRate = 5000) public void poll() { getCrapAndPutOnConsumerQueue(); }