Package net.ttddyy.observation.boot
Class SpringJdbcProxyFactory
java.lang.Object
net.ttddyy.observation.boot.SpringJdbcProxyFactory
- All Implemented Interfaces:
net.ttddyy.dsproxy.proxy.JdbcProxyFactory
public class SpringJdbcProxyFactory
extends Object
implements net.ttddyy.dsproxy.proxy.JdbcProxyFactory
JdbcProxyFactory implementation using spring's ProxyFactory.
Using Spring's proxy mechanism allows other Spring-based libraries to correctly introspect and extract the underlying target object from the proxy.
This is particularly useful when Spring infrastructure components need to inspect the
concrete type of a proxied object. For example, Spring Cloud's refresh scope logic
checks whether a DataSource bean is a specific implementation such as HikariCP.
When the DataSource is wrapped by this proxy factory, Spring can still extract
the underlying target object and perform such checks correctly. (see issue#99)
- Since:
- 1.4
- Author:
- Tadaya Tsuyukubo
- See Also:
-
ProxyFactory
-
Field Summary
Fields inherited from interface net.ttddyy.dsproxy.proxy.JdbcProxyFactory
DEFAULT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateCallableStatement(CallableStatement callableStatement, String query, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, Connection proxyConnection, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) createConnection(Connection connection, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) createDataSource(DataSource dataSource, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) createGeneratedKeys(ResultSet resultSet, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) createPreparedStatement(PreparedStatement preparedStatement, String query, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, Connection proxyConnection, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig, boolean generateKey) createResultSet(ResultSet resultSet, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) createStatement(Statement statement, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, Connection proxyConnection, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig)
-
Constructor Details
-
SpringJdbcProxyFactory
public SpringJdbcProxyFactory()
-
-
Method Details
-
createDataSource
public DataSource createDataSource(DataSource dataSource, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) - Specified by:
createDataSourcein interfacenet.ttddyy.dsproxy.proxy.JdbcProxyFactory
-
createConnection
public Connection createConnection(Connection connection, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) - Specified by:
createConnectionin interfacenet.ttddyy.dsproxy.proxy.JdbcProxyFactory
-
createStatement
public Statement createStatement(Statement statement, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, Connection proxyConnection, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) - Specified by:
createStatementin interfacenet.ttddyy.dsproxy.proxy.JdbcProxyFactory
-
createPreparedStatement
public PreparedStatement createPreparedStatement(PreparedStatement preparedStatement, String query, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, Connection proxyConnection, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig, boolean generateKey) - Specified by:
createPreparedStatementin interfacenet.ttddyy.dsproxy.proxy.JdbcProxyFactory
-
createCallableStatement
public CallableStatement createCallableStatement(CallableStatement callableStatement, String query, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, Connection proxyConnection, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) - Specified by:
createCallableStatementin interfacenet.ttddyy.dsproxy.proxy.JdbcProxyFactory
-
createResultSet
public ResultSet createResultSet(ResultSet resultSet, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) - Specified by:
createResultSetin interfacenet.ttddyy.dsproxy.proxy.JdbcProxyFactory
-
createGeneratedKeys
public ResultSet createGeneratedKeys(ResultSet resultSet, net.ttddyy.dsproxy.ConnectionInfo connectionInfo, net.ttddyy.dsproxy.proxy.ProxyConfig proxyConfig) - Specified by:
createGeneratedKeysin interfacenet.ttddyy.dsproxy.proxy.JdbcProxyFactory
-