Có rất nhiều cách để làm như vậy. Cách đầu tiên:
-
DataSource là một giao diện, vậy tại sao bạn không tự triển khai nó (sử dụng Proxy pattern)? Tạo một cái gì đó như thế này:
class MyDataSource implements DataSource { private DataSource realDataSource; public Connection getConnection() { Connection c = realDataSource.getConnection(); // do whatever you want to do and return c; } }
Tất cả các phương thức khác sẽ ủy quyền trực tiếp cho realDataSource.
Proxy này có thể được sử dụng trong đoạn mã được cung cấp.
-
Bạn có thể sử dụng một số AOP - chỉ cần cung cấp một lời khuyên rằng sau khi kết nối được tạo sẽ chạy và làm bất cứ điều gì bạn cần ở đó. Về cơ bản, nó là cùng một proxy nhưng được Spring tạo tự động.