private void testDataSourceManager(DynamicDataSourceManager dynamicDataSourceManager) throws SQLException { dynamicDataSourceManager.init(); try { DynamicDataSourceHolder.setDataSourceKey(null); DataSource dataSource = dynamicDataSourceManager.getDataSource(); Assert.assertNotNull(dataSource.getConnection()); DynamicDataSourceHolder.setDataSourceKey("a"); dataSource = dynamicDataSourceManager.getDataSource(); Assert.assertNotNull(dataSource.getConnection()); DynamicDataSourceHolder.setDataSourceKey("b"); dataSource = dynamicDataSourceManager.getDataSource(); Assert.assertNotNull(dataSource.getConnection()); } finally { dynamicDataSourceManager.destroy(); } }
public void before(JoinPoint point) { Object target = point.getTarget(); String method = point.getSignature().getName(); Class<?>[] classz = target.getClass().getInterfaces(); Class<?>[] parameterTypes = ((MethodSignature) point.getSignature()).getMethod().getParameterTypes(); try { Method m = classz[0].getMethod(method, parameterTypes); if (m != null && m.isAnnotationPresent(DataSource.class)) { DataSource data = m.getAnnotation(DataSource.class); DynamicDataSourceHolder.setDataSource(data.value()); if (log.isDebugEnabled()) { log.debug("DataSourceAspect:=======================" + data.value()); } } } catch (Exception e) { log.error(e.getMessage(), e); } }