在Spring Cloud項(xiàng)目中,您可以利用Druid整合阿里數(shù)據(jù)庫連接池以提高性能和管理數(shù)據(jù)。這種整合提供了更好的監(jiān)控、擴(kuò)展和配置選項(xiàng),是許多開發(fā)人員青睞的選擇。通過合理配置,您可以輕松實(shí)現(xiàn)數(shù)據(jù)庫連接池的優(yōu)化,進(jìn)而改善系統(tǒng)的穩(wěn)定性和性能表現(xiàn)。文章來源地址http://www.zghlxwxcb.cn/article/720.html
示例代碼
1. 配置 pom
<!-- druid 數(shù)據(jù)庫連接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> <exclusions> <exclusion> <groupId>com.alibaba</groupId> <artifactId>jconsole</artifactId> </exclusion> <exclusion> <groupId>com.alibaba</groupId> <artifactId>tools</artifactId> </exclusion> </exclusions> </dependency>
2. 配置 application.properties
#druid連接池 spring.datasource.type: com.alibaba.druid.pool.DruidDataSource #最大活躍數(shù) spring.datasource.maxActive: 20 #初始化數(shù)量 spring.datasource.initialSize: 1 #最大連接等待超時(shí)時(shí)間 spring.datasource.maxWait: 60000 #打開PSCache,并且指定每個(gè)連接PSCache的大小 spring.datasource.poolPreparedStatements: true spring.datasource.maxPoolPreparedStatementPerConnectionSize: 20 #通過connectionProperties屬性來打開mergeSql功能;慢SQL記錄 #connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 spring.datasource.minIdle: 1 spring.datasource.timeBetweenEvictionRunsMillis: 60000 spring.datasource.minEvictableIdleTimeMillis: 300000 spring.datasource.validationQuery: select 1 from dual spring.datasource.testWhileIdle: true spring.datasource.testOnBorrow: false spring.datasource.testOnReturn: false #配置監(jiān)控統(tǒng)計(jì)攔截的filters,去掉后監(jiān)控界面sql將無法統(tǒng)計(jì),'wall'用于防火墻 filters: stat, wall, log4j
3.Config 配置類
/** * 說明:第一數(shù)據(jù)源配置 */ @Configuration @MapperScan(basePackages = MasterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory") //掃描 Mapper 接口并容器管理 public class MasterDataSourceConfig { static final String PACKAGE = "org.fh.mapper.dsno1"; //master 目錄 static final String MAPPER_LOCATION = "classpath:mybatis/dsno1/*/*.xml"; //掃描的 xml 目錄 static final String CONFIG_LOCATION = "classpath:mybatis/dsno1/mybatis-config.xml"; //自定義的mybatis config 文件位置 static final String TYPE_ALIASES_PACKAGE = "org.fh.entity"; //掃描的 實(shí)體類 目錄 @Value("${datasource.no1.url}") private String url; @Value("${datasource.no1.username}") private String user; @Value("${datasource.no1.password}") private String password; @Value("${datasource.no1.driver-class-name}") private String driverClass; @Bean(name = "masterDataSource") @Primary public DataSource masterDataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClass); dataSource.setUrl(url); dataSource.setUsername(user); dataSource.setPassword(password); return dataSource; } @Bean(name = "masterTransactionManager") @Primary public DataSourceTransactionManager masterTransactionManager() { return new DataSourceTransactionManager(masterDataSource()); } @Bean(name = "masterSqlSessionFactory") @Primary public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(masterDataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MasterDataSourceConfig.MAPPER_LOCATION)); sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(MasterDataSourceConfig.CONFIG_LOCATION)); sessionFactory.setTypeAliasesPackage(MasterDataSourceConfig.TYPE_ALIASES_PACKAGE); return sessionFactory.getObject(); } }
文章來源:http://www.zghlxwxcb.cn/article/720.html
到此這篇關(guān)于如何在Spring Cloud中利用Druid整合阿里數(shù)據(jù)庫連接池的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!