Como exportar dados do banco de dados, gerar um csv e efetuar o download?

Possuo uma tela de vendas, aonde usuário seleciona um cliente, um produto, a quantidade e efetua a compra, essas informações são gravadas no banco de dados. Preciso de um botão na tela de vendas que gera um relatório com todas as vendas em csv. Estou usando Java com SpringBoot

Procure sobre InputStreamResources para enviar o arquivo para download e iText para criar o seu arquivo csv