Spring RedirectAttributes: addAttribute () vs addFlashAttribute ()

Até agora, meu entendimento está no nosso método de mapeamento de solicitação do controlador que podemos especificarRedirectAttributes parâmetro e preenchê-lo com atributos para quando a solicitação é redirecionada.

Exemplo:

@RequestMapping(value="/hello", method=GET)
public String hello(RedirectAttributes redirAttr)
{
   // should I use redirAttr.addAttribute() or redirAttr.addFlashAttribute() here ?

   // ...

   return "redirect:/somewhere";
}

Os atributos de redirecionamento estarão disponíveis na página de destino para a qual ele redireciona.

ContudoRedirectAttributes classe tem dois métodos:

addAttribute()addFlashAttribute()

Tenho lido a documentação do Spring por um tempo, mas estou um pouco perdido. Qual é o fundamentaldiferença entre esses dois, e como devo escolher qual deles usar?