Skip to content

Commit

Permalink
feat: release 2.4.1
Browse files Browse the repository at this point in the history
  • Loading branch information
huayanYu committed Nov 20, 2018
1 parent 10cb533 commit 93173be
Show file tree
Hide file tree
Showing 31 changed files with 452 additions and 290 deletions.
2 changes: 1 addition & 1 deletion .gitignore
@@ -1,4 +1,4 @@
*/target/
target/
!.mvn/wrapper/maven-wrapper.jar

### STS ###
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,7 @@
# v2.4.1
- 修复了上个版本hikari不兼容1.5.x的BUG。
- 提供了hikari全局属性的配置。

# v2.4.0
- 重构了druid配置。
- 支持了更多druid参数配置,支持了加密。
Expand Down
68 changes: 65 additions & 3 deletions README.md
Expand Up @@ -279,20 +279,82 @@ spring:
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://47.100.20.186:3306/dynamic?characterEncoding=utf8&useSSL=false
url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic?characterEncoding=utf8&useSSL=false
druid: # 以下参数针对每个库可以重新设置druid参数
initial-size:
validation-query: select 1 FROM DUAL #比如oracle就需要重新设置这个
public-key: #(非全局参数)设置即表示启用加密,底层会自动帮你配置相关的连接参数和filter。
# ......


# 生成 publickey 和密码
# java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools youpassword
```

如上即可配置访问用户和密码,访问 http://localhost:8080/druid/index.html 查看druid监控。

## 集成 HikariCP

HikariCP官方地址 https://github.com/brettwooldridge/HikariCP

SpringBoot 2.+ 默认引入了HikariCP,除非对版本有要求无需再次引入。

使用SpringBoot 1.5.x的版本需手动引入,对应的版本参考官方地址。

```yaml
spring:
datasource:
dynamic:
hikari: # 全局hikariCP参数,所有值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
catalog:
connection-timeout:
validation-timeout:
idle-timeout:
leak-detection-threshold:
max-lifetime:
max-pool-size:
min-idle:
initialization-fail-timeout:
connection-init-sql:
connection-test-query:
dataSource-class-name:
dataSource-jndi-name:
schema:
transaction-isolation-name:
is-auto-commit:
is-read-only:
is-isolate-internal-queries:
is-register-mbeans:
is-allow-pool-suspension:
data-source-properties: #以下属性仅为演示(默认不会引入)
serverTimezone: Asia/Shanghai
characterEncoding: utf-8
useUnicode: true
useSSL: false
autoReconnect: true
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false
allowPublicKeyRetrieval: true
health-check-properties:
datasource:
master:
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic?characterEncoding=utf8&useSSL=false
hikari: # 以下参数针对每个库可以重新设置hikari参数
max-pool-size:
idle-timeout:
# ......
```

## 集成 MybatisPlus

只要进入mybatisPlus相关jar包,项目自动集成。 兼容mybatisPlus 2.x和3.x的版本。
Expand All @@ -316,7 +378,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us

p6sy大部分人最常用的功能就是格式化你的sql语句。

```mysql
```sql
# 如在使用mybatis的过程中,原生输出的语句是带?号的。在需要复制到其他地方执行看效果的时候很不方便。
select * from user where age>?
# 在使用了p6sy后,其会帮你格式化成真正的执行语句。
Expand Down
6 changes: 3 additions & 3 deletions pom.xml
Expand Up @@ -12,7 +12,7 @@

<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.4.0</version>
<version>2.4.1</version>
<packaging>jar</packaging>

<name>dynamic-datasource-spring-boot-starter</name>
Expand Down Expand Up @@ -84,8 +84,8 @@
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.7.0</version>
<artifactId>HikariCP-java7</artifactId>
<version>2.4.13</version>
<optional>true</optional>
</dependency>
<dependency>
Expand Down
2 changes: 1 addition & 1 deletion samples/dynamic-mybatisplus3-sample/pom.xml
Expand Up @@ -15,7 +15,7 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.3</version>
<version>3.0.6</version>
</dependency>
</dependencies>

Expand Down
2 changes: 1 addition & 1 deletion samples/pom.xml
Expand Up @@ -40,7 +40,7 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.3.7</version>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down
Expand Up @@ -19,6 +19,7 @@
import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.druid.DruidConfig;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.hikari.HikariCpConfig;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import lombok.Setter;
Expand Down Expand Up @@ -72,7 +73,7 @@ public class DynamicDataSourceCreator {
private DruidConfig druidGlobalConfig;

@Setter
private HikariConfig globalHikariConfig;
private HikariCpConfig hikariGlobalConfig;

public DynamicDataSourceCreator() {
Class<?> builderClass = null;
Expand Down Expand Up @@ -173,15 +174,16 @@ public DataSource createJNDIDataSource(String jndiName) {
*/
public DataSource createDruidDataSource(DataSourceProperty dataSourceProperty) {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setName(dataSourceProperty.getPollName());
dataSource.setUrl(dataSourceProperty.getUrl());
dataSource.setUsername(dataSourceProperty.getUsername());
dataSource.setPassword(dataSourceProperty.getPassword());
dataSource.setUrl(dataSourceProperty.getUrl());
dataSource.setDriverClassName(dataSourceProperty.getDriverClassName());
dataSource.setName(dataSourceProperty.getPollName());

DruidConfig config = dataSourceProperty.getDruid();
dataSource.configFromPropety(config.toProperties(druidGlobalConfig));

//连接参数单独设置
dataSource.setConnectProperties(config.getConnectionProperties());
//设置druid内置properties不支持的的参数
Boolean testOnReturn = config.getTestOnReturn() == null ? druidGlobalConfig.getTestOnReturn() : config.getTestOnReturn();
if (testOnReturn != null && testOnReturn.equals(true)) {
Expand Down Expand Up @@ -217,22 +219,16 @@ public DataSource createDruidDataSource(DataSourceProperty dataSourceProperty) {
*
* @param dataSourceProperty 数据源参数
* @return 数据源
* @author 离世庭院
* @author 离世庭院 小锅盖
*/
public DataSource createHikariDataSource(DataSourceProperty dataSourceProperty) {
HikariConfig hikariConfig = dataSourceProperty.getHikari();
if (hikariConfig == null) {
//自己没设置就copy全局参数
hikariConfig.copyState(globalHikariConfig);
}
hikariConfig.setJdbcUrl(dataSourceProperty.getUrl());
hikariConfig.setUsername(dataSourceProperty.getUsername());
hikariConfig.setPassword(dataSourceProperty.getPassword());
hikariConfig.setDriverClassName(dataSourceProperty.getDriverClassName());
//暂时不支持设置监控
// hikariConfig.setMetricRegistry(metricRegistry);
// hikariConfig.setHealthCheckRegistry(healthCheckRegistry);
hikariConfig.setPoolName(dataSourceProperty.getPollName());
return new HikariDataSource(hikariConfig);
HikariCpConfig hikariCpConfig = dataSourceProperty.getHikari();
HikariConfig config = hikariCpConfig.toHikariConfig(hikariGlobalConfig);
config.setUsername(dataSourceProperty.getUsername());
config.setPassword(dataSourceProperty.getPassword());
config.setJdbcUrl(dataSourceProperty.getUrl());
config.setDriverClassName(dataSourceProperty.getDriverClassName());
config.setPoolName(dataSourceProperty.getPollName());
return new HikariDataSource(config);
}
}
Expand Up @@ -17,7 +17,7 @@
package com.baomidou.dynamic.datasource.spring.boot.autoconfigure;

import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.druid.DruidConfig;
import com.zaxxer.hikari.HikariConfig;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.hikari.HikariCpConfig;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
Expand Down Expand Up @@ -70,5 +70,5 @@ public class DataSourceProperty {
* HikariCp参数配置
*/
@NestedConfigurationProperty
private HikariConfig hikari = new HikariConfig();
private HikariCpConfig hikari = new HikariCpConfig();
}
Expand Up @@ -71,7 +71,7 @@ public DynamicDataSourceProvider dynamicDataSourceProvider(DynamicDataSourceCrea
public DynamicDataSourceCreator dynamicDataSourceCreator() {
DynamicDataSourceCreator dynamicDataSourceCreator = new DynamicDataSourceCreator();
dynamicDataSourceCreator.setDruidGlobalConfig(properties.getDruid());
dynamicDataSourceCreator.setGlobalHikariConfig(properties.getHikari());
dynamicDataSourceCreator.setHikariGlobalConfig(properties.getHikari());
return dynamicDataSourceCreator;
}

Expand Down
Expand Up @@ -17,9 +17,9 @@
package com.baomidou.dynamic.datasource.spring.boot.autoconfigure;

import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.druid.DruidConfig;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.hikari.HikariCpConfig;
import com.baomidou.dynamic.datasource.strategy.DynamicDataSourceStrategy;
import com.baomidou.dynamic.datasource.strategy.LoadBalanceDynamicDataSourceStrategy;
import com.zaxxer.hikari.HikariConfig;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
Expand Down Expand Up @@ -71,5 +71,5 @@ public class DynamicDataSourceProperties {
* HikariCp全局参数配置
*/
@NestedConfigurationProperty
private HikariConfig hikari = new HikariConfig();
private HikariCpConfig hikari = new HikariCpConfig();
}

0 comments on commit 93173be

Please sign in to comment.