一、多数据源模块pom文件添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.skynet</groupId>
<artifactId>skynet-common</artifactId>
<version>3.6.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>skynet-common-datasource</artifactId>
<description>
skynet-common-datasource多数据源
</description>
<dependencies>
<!-- Druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.11</version>
</dependency>
<!-- Dynamic DataSource -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic-ds.version}</version>
</dependency>
<!-- SpringBoot Seata -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>
<!-- 此依赖需要自行添加到本地仓库 -->
<dependency>
<groupId>cn.com.vastdata</groupId>
<artifactId>vastbase</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-jdbc-driver</artifactId>
<version>3.5.2</version>
</dependency>
</dependencies>
</project>
二、创建Neo4j接口
接口代码如下:
package com.skynet.common.datasource.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.baomidou.dynamic.datasource.annotation.DS;
/**
* 从库数据源
*
* @author skynet
*/
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@DS("Neo4j")
public @interface Neo4j
{
}
yml配置文件添加
dynamic:
druid:
initial-size: 5
min-idle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,slf4j
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
# 主库数据源vastbase
master:
driverClassName: org.postgresql.Driver
# url: jdbc:postgresql://192.168.50.133:5432/vastbase
# username: test
# password: HLWfz1106
url: jdbc:postgresql://192.168.50.171:5432/vastbase
username: vbadmin
password: Qq@952318
# 从库数据源 此处可自行添加其他数据源
#slave:
#driverClassName: org.postgresql.Driver
# url: jdbc:postgresql://192.168.50.133:5432/vastbase
# username: test
# password: HLWfz1106
#url: jdbc:postgresql://192.168.50.171:5432/vastbase
#username: vbadmin
#password: Qq@952318
# neo4j数据源
Neo4j:
driverClassName: org.neo4j.jdbc.Driver
url: jdbc:neo4j:bolt://192.168.50.171:7687
username: neo4j
password: Qq952318
druid: # 以下参数针对每个库可以重新设置druid参数
initial-size:
validation-query: Match (n:people) return count(n)
项目使用多数据源dynamic-datasource集成neo4j成功,项目运行日志