|
|
@@ -8,6 +8,8 @@ import com.usoftchina.saas.dc.dto.DataSourceInfoDTO;
|
|
|
import com.usoftchina.saas.jdbc.DynamicDataSourceContextHolder;
|
|
|
import com.usoftchina.saas.jdbc.DynamicDataSourceRegister;
|
|
|
import com.usoftchina.saas.utils.StringUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.lang.Nullable;
|
|
|
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
|
|
@@ -24,6 +26,8 @@ public class DataSourceInterceptor extends HandlerInterceptorAdapter {
|
|
|
@Autowired
|
|
|
private DynamicDataSourceRegister dataSourceRegister;
|
|
|
|
|
|
+ private Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
+
|
|
|
@Override
|
|
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
|
|
long companyId = BaseContextHolder.getCompanyId();
|
|
|
@@ -33,7 +37,10 @@ public class DataSourceInterceptor extends HandlerInterceptorAdapter {
|
|
|
// 该公司绑定到了指定数据中心
|
|
|
if (StringUtils.hasText(dcName)) {
|
|
|
String dbName = dataSourceRegister.getDefaultDatabaseName();
|
|
|
+ DataSourceCache.of(dcName, dbName).hdel();
|
|
|
DataSourceInfoDTO dataSourceInfoDTO = DataSourceCache.of(dcName, dbName).getDataSourceInfo();
|
|
|
+ logger.info("DbName={} hostname={} DbRealName={}", dataSourceInfoDTO.getDbName(), dataSourceInfoDTO.getDbHost(),
|
|
|
+ dataSourceInfoDTO.getDbRealName());
|
|
|
if (null != dataSourceInfoDTO) {
|
|
|
// 如果不存在数据源则自动创建
|
|
|
dataSourceRegister.createDataSource(dataSourceInfoDTO);
|