Ci sono molti modi per farlo. Il primo:
-
DataSource è un'interfaccia, quindi perché non la implementi tu stesso (usa il modello proxy)? Crea qualcosa del genere:
class MyDataSource implements DataSource { private DataSource realDataSource; public Connection getConnection() { Connection c = realDataSource.getConnection(); // do whatever you want to do and return c; } }
Tutti gli altri metodi delegheranno direttamente a realDataSource.
Questo proxy può essere utilizzato in uno snippet di codice fornito.
-
Puoi usare alcuni AOP:fornisci semplicemente un consiglio che dopo aver creato la connessione get verrà eseguito e farà tutto ciò di cui hai bisogno lì. Fondamentalmente è lo stesso proxy ma creato automaticamente da Spring.