微调,xa数据库配置抽离

This commit is contained in:
dftre 2025-02-19 11:19:58 +08:00
parent 7494c5f462
commit d5a9dec0a1
5 changed files with 18 additions and 7 deletions

View File

@ -5,6 +5,7 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver driverClassName: com.mysql.cj.jdbc.Driver
dynamic: dynamic:
primary: MASTER primary: MASTER
xa: true
datasource: datasource:
# 主库数据源 # 主库数据源
MASTER: MASTER:

View File

@ -5,15 +5,17 @@ import java.util.Properties;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.xa.DruidXADataSource;
// import com.alibaba.druid.pool.xa.DruidXADataSource; // import com.alibaba.druid.pool.xa.DruidXADataSource;
import com.ruoyi.common.service.datasource.CreateDataSource; import com.ruoyi.common.service.datasource.CreateDataSource;
import com.ruoyi.framework.config.DruidConfig; import com.ruoyi.framework.config.DruidConfig;
import com.ruoyi.framework.config.DynamicDataSourceProperties; import com.ruoyi.framework.config.DynamicDataSourceProperties;
@Component @Configuration
public class DataSourceCreate implements CreateDataSource { public class DataSourceCreate implements CreateDataSource {
@Autowired @Autowired
@ -22,12 +24,20 @@ public class DataSourceCreate implements CreateDataSource {
@Autowired @Autowired
private DruidConfig druidConfig; private DruidConfig druidConfig;
@Value("${spring.datasource.dynamic.xa}")
private boolean xa;
public DataSource createDataSource(String name, Properties prop) { public DataSource createDataSource(String name, Properties prop) {
// DruidXADataSource dataSource = new DruidXADataSource(); DruidDataSource dataSource = null;
DruidDataSource dataSource = new DruidDataSource(); if (xa) {
dataSource = new DruidXADataSource();
} else {
dataSource = new DruidDataSource();
}
druidConfig.getDruidDataSources().add(dataSource); druidConfig.getDruidDataSources().add(dataSource);
dataSource.setConnectProperties(prop); dataSource.setConnectProperties(prop);
properties.setProperties(dataSource, prop); properties.setProperties(dataSource, prop);
return dataSource; return dataSource;
} }
} }

View File

@ -7,8 +7,10 @@ import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.support.JdbcTransactionManager; import org.springframework.jdbc.support.JdbcTransactionManager;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Component @Component
@EnableTransactionManagement(proxyTargetClass = true)
public class DynamicTransactionManager extends JdbcTransactionManager { public class DynamicTransactionManager extends JdbcTransactionManager {
@Autowired @Autowired

View File

@ -24,7 +24,7 @@ public class Ehcache3Config {
public JCacheCacheManager ehcacheManager() { public JCacheCacheManager ehcacheManager() {
EhcacheCachingProvider cachingProvider = (EhcacheCachingProvider) Caching.getCachingProvider(); EhcacheCachingProvider cachingProvider = (EhcacheCachingProvider) Caching.getCachingProvider();
CacheManager cacheManager = (CacheManager) cachingProvider.getCacheManager(); CacheManager cacheManager = cachingProvider.getCacheManager();
MutableConfiguration<String, Object> mutableConfiguration = new MutableConfiguration<>(); MutableConfiguration<String, Object> mutableConfiguration = new MutableConfiguration<>();
mutableConfiguration.setTypes(String.class, Object.class); mutableConfiguration.setTypes(String.class, Object.class);
mutableConfiguration.setStoreByValue(false); // 默认值为 true可根据需求调整 mutableConfiguration.setStoreByValue(false); // 默认值为 true可根据需求调整

View File

@ -10,7 +10,6 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.SpringBootVFS; import com.baomidou.mybatisplus.autoconfigure.SpringBootVFS;
@ -30,7 +29,6 @@ import com.ruoyi.common.utils.StringUtils;
* *
* @author ruoyi * @author ruoyi
*/ */
@EnableTransactionManagement(proxyTargetClass = true)
@Configuration @Configuration
public class MybatisPlusConfig { public class MybatisPlusConfig {
@Bean @Bean