コード例 #1
0
  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();
    }
  }
コード例 #2
0
 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);
   }
 }