Pergunta

O projeto que estou trabalhando sobre os usos de acesso a dados JDBC reta em toda a sua glória clichê e não usa quaisquer transações. Eu me sinto como o uso de transações e simplificar os métodos de acesso a dados forma como são escritos é importante, especialmente com algumas mudanças que estão sendo feitas atualmente. O projeto já existe há muito tempo e não é adequado para um quadro ORM. Ele também usa muita Singletons (ugh) e desembaraçar-lo para torná-lo capaz de usar injeção de dependência seria uma quantidade justa de trabalho e eu não acho que eu poderia convencer ninguém de que devemos fazer isso agora.

Eu gosto da interface de Primavera JDBC, especificamente através da sua SimpleJdbcTemplate. A minha pergunta é sobre como habilitar algumas simples (por solicitação do servlet) transações para isso, sem ter que definir nada de programação em cada método de acesso de dados ou usando o contêiner do Spring IoC ou AOP. Eu brinquei com minha própria arquitetura que termina com uma interface semelhante ao SimpleJdbcTemplate do e pode usar uma única conexão de solicitação de local e transação quando chamadas para ele são feitas no contexto de um pedido (através de um ServletRequestListener com um ThreadLocal). Parece que funciona bem, mas eu acho que usando uma boa biblioteca externa como Spring JDBC seria preferível.

Alguém tem alguma experiência com isso?

Foi útil?

Solução

Outras dicas

Spring lida com transações para você declarativa sem que você tenha que se preocupar com escrever classes AOP. Se você estiver usando o JDK 5 ou superior e Spring 2.5, você tê-lo ainda melhor com anotações .

Eu discordo de transações por-servlet. Você deve ter um nível de serviço, que é a parte do aplicativo que sabe sobre unidades de trabalho. Controladores de pôr em serviços, que as transações do punho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top