HikariDataSource Spring boot 默認數據源池 更改為Druid


HikariDataSource Spring boot 默認數據源池

還有DruidDatasoure的配置,需要注意的是

@Bean
public JdkRegexpMethodPointcut druidStatPointcut() {
JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
String patterns = "com.jxdinfo.hussar.*.service.*";
druidStatPointcut.setPatterns(new String[]{patterns});
return druidStatPointcut;
}

import com.alibaba.druid.filter.stat.MergeStatFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import com.ydzbinfo.hussar.config.properties.ConnectionPoolProperties;
import com.ydzbinfo.hussar.core.datasource.DruidProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

@Configuration
@EnableTransactionManagement(
order = 2
)
public class MybatisPlusConfig {



private static Map<Object, Object> targetDataSource = new HashMap();
@Autowired
DruidProperties druidProperties;
/*@Autowired
MutiDataSourceOneProperties mutiDataSourceOneProperties;
@Autowired
MutiDataSourceTwoProperties mutiDataSourceTwoProperties;
@Autowired
MutiDataSourceThreeProperties mutiDataSourceThreeProperties;
@Autowired
MutiDataSourceFourProperties mutiDataSourceFourProperties;
@Autowired
HussarProperties hussarProperties;*/
@Autowired
ConnectionPoolProperties connectionPoolProperties;

public MybatisPlusConfig() {
}

public static void setTargetDataSource(String dataSourceKey, DruidDataSource druidDataSource) {
targetDataSource.put(dataSourceKey, druidDataSource);
}





public DruidDataSource dataSourceHussar() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.getProxyFilters().remove(MergeStatFilter.class);
dataSource.getProxyFilters().add(this.mergeStatFilter());
this.druidProperties.config(dataSource);
return dataSource;
}



@Bean
public MergeStatFilter mergeStatFilter() {
MergeStatFilter statFilter = new MergeStatFilter();
statFilter.setSlowSqlMillis((long) this.connectionPoolProperties.getSlowSqlMillis());
statFilter.setLogSlowSql(this.connectionPoolProperties.isLogSlowSql());
statFilter.setMergeSql(this.connectionPoolProperties.isMergeSql());
return statFilter;
}

@Bean
@ConditionalOnProperty(
prefix = "hussar",
name = {"muti-datasource-open"},
havingValue = "false",
matchIfMissing = true
)
public DataSource singleDatasource() {
return (DataSource)this.dataSourceHussar();
}



/* @Bean
public PaginationInterceptor paginationInterceptor(DataSource dataSource) throws SQLException {
PaginationInterceptor inter = new PaginationInterceptor();
Connection connection = dataSource.getConnection();
String url = connection.getMetaData().getURL();
String driverClassName = connection.getMetaData().getDriverName();
connection.close();


return inter;
}*/

/*
@Bean
public DataScopeInterceptor dataScopeInterceptor() {
return new DataScopeInterceptor();
}
*/

@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}

/* @Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}*/
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM