|  |  | 
 |  |  |         DataSourceSingle dataSource = method.getAnnotation(DataSourceSingle.class); | 
 |  |  |  | 
 |  |  |         if (Objects.nonNull(dataSource) && !StringUtils.isNullOrEmpty(dataSource.value())) { | 
 |  |  |             log.info("数据源指定为" + dataSource.value()); | 
 |  |  |             //log.info("数据源指定为" + dataSource.value()); | 
 |  |  |             //强制转成方法上配置的数据源,替换掉DataSourceContext中保存的数据源 | 
 |  |  |             DataSourceContext.set(dataSource.value()); | 
 |  |  |         }else{ | 
 |  |  |             String datasourceName = SpringContextUtil.getApplicationContext().getEnvironment().getProperty("spring.datasource.names") ; | 
 |  |  |             if(!StringUtils.isNullOrEmpty(datasourceName)){ | 
 |  |  |                 log.info("根据配置数据源为" + datasourceName); | 
 |  |  |                 //log.info("根据配置数据源为" + datasourceName); | 
 |  |  |                 DataSourceContext.set(datasourceName); | 
 |  |  |             }else{ | 
 |  |  |                 log.error("数据源未指定"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         try { | 
 |  |  |             log.info("数据库操作开始" + dataSource.value()); | 
 |  |  |             //log.info("数据库操作开始" + dataSource.value()); | 
 |  |  |             return point.proceed(); | 
 |  |  |         } finally { | 
 |  |  |             // 销毁数据源 在执行方法之后 | 
 |  |  |             log.info("数据源操作完毕" + dataSource.value()); | 
 |  |  |             //log.info("数据源操作完毕" + dataSource.value()); | 
 |  |  |             DataSourceContext.remove(); | 
 |  |  |         } | 
 |  |  |     } |