Domanda

Il progetto su cui sto lavorando utilizza l'accesso ai dati JDBC dritto in tutta la sua gloria boilerplate e non usa alcuna transazione. Mi sento come l'utilizzo di transazioni e semplificando le modalità di accesso ai dati modo in cui vengono scritti è importante, soprattutto con alcune modifiche stati fatti al momento. Il progetto è stato intorno per un bel po 'e non è adatto ad un quadro ORM. Esso utilizza anche un sacco di Singletons (ugh) e districare per renderlo in grado di utilizzare l'iniezione di dipendenza sarebbe una buona dose di lavoro e non credo che potrei convincere qualcuno che dovremmo farlo ora.

Mi piace l'interfaccia di Spring JDBC, in particolare attraverso la sua SimpleJdbcTemplate. La mia domanda è su come abilitare alcune operazioni semplici (per servlet richiesta) per questo, senza dover impostare nulla a livello di codice in ogni metodo di accesso ai dati o utilizzando il contenitore IoC primavera o AOP. Ho giocato in giro con la mia propria architettura che finisce con un'interfaccia simile a SimpleJdbcTemplate di e può utilizzare una singola connessione di richiesta-locale e di transazione quando le chiamate ad esso sono realizzati nel contesto di una richiesta (attraverso un ServletRequestListener con un ThreadLocal). Sembra funzionare bene, ma penso che utilizza una buona libreria esterna come Spring JDBC sarebbe preferibile.

Qualcuno ha qualche esperienza con questo?

È stato utile?

Soluzione

Altri suggerimenti

Spring gestisce le transazioni per voi in modo dichiarativo, senza dover preoccuparsi di scrivere classi AOP. Se stai usando JDK 5 o superiore e Spring 2.5, lo avete ancora meglio con annotazioni .

Io sarei d'accordo con transazioni al-servlet. Si dovrebbe avere un livello di servizio, che è la parte della app che sa di unità di lavoro. Controller mettono in servizi, che gestiscono le transazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top