微调,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
dynamic:
primary: MASTER
xa: true
datasource:
# 主库数据源
MASTER:

View File

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

View File

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

View File

@ -24,7 +24,7 @@ public class Ehcache3Config {
public JCacheCacheManager ehcacheManager() {
EhcacheCachingProvider cachingProvider = (EhcacheCachingProvider) Caching.getCachingProvider();
CacheManager cacheManager = (CacheManager) cachingProvider.getCacheManager();
CacheManager cacheManager = cachingProvider.getCacheManager();
MutableConfiguration<String, Object> mutableConfiguration = new MutableConfiguration<>();
mutableConfiguration.setTypes(String.class, Object.class);
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.core.env.Environment;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.SpringBootVFS;
@ -30,7 +29,6 @@ import com.ruoyi.common.utils.StringUtils;
*
* @author ruoyi
*/
@EnableTransactionManagement(proxyTargetClass = true)
@Configuration
public class MybatisPlusConfig {
@Bean