Vantagens de um DataSource JNDI

Bom dia, alguém poderia me esclarecer um dúvida…
Quais as vantagens de se usar um DataSource para ser acessado via JNDI e gerenciado pelo Container.
Qual os prós e contra de se usar um Gerênciado de conexão pelo Container ou via Codigo.?

Usando via JNDI caso mude o banco de dados ou o local do servidor voce não precisa dar redeploy na sua aplicação já que ela acessa via nome

Além de voce pode usar pool de conexao e tirar a responsabilidade de sua aplicação em relação a conexao

  • Obter a referencia de objeto gerenciado pelo container sem deter nenhum conhecimento de aonde, como e de onde veio.
  • Portabilidade entre servidores.
  • Baixa acoplamento entre o provedor de POOL com a solução.
  • Liberdade de trocar de provedor de POOL sem quebrar o código da solução. Se vc não gosta de 1, é só trocar por outro melhor…
  • A aplicação não precisa implementar o gerenciamento do POOL (Vc gostaria de fazer isso? kkkkkkkkk acha que é facil?) Por que não se concentrar no codigo da sua solução e deixar essa infra para o container? Isso é o beneficio de seu usar um produto especificação.
  • Customização parametrizada via soft-code (normalmente xml)
  • Separação de responsabilidade entre software provider com software administrador de produção. Ou seja, as configuração de pool entre desenvolvimento e produção fica variavel…
  • Muitas outras…na verdade vc só ganha!
  • Qualquer outra duvida favor ler livro sobre JNDI e/ou sua especificação.