Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fgqyxxlr
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yaru
fgqyxxlr
Commits
c404de17
Commit
c404de17
authored
Dec 20, 2018
by
RuoYi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
reset
parent
cfcd48b6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
34 additions
and
160 deletions
+34
-160
ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java
+1
-1
ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java
+6
-1
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
+1
-1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java
+26
-51
ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/SysDatasource.java
+0
-68
sql/sys_datasource.sql
+0
-38
No files found.
ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java
View file @
c404de17
...
...
@@ -18,5 +18,5 @@ public @interface DataSource
/**
* 切换数据源名称
*/
public
String
value
()
default
"MASTER"
;
public
DataSourceType
value
()
default
DataSourceType
.
MASTER
;
}
ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java
View file @
c404de17
...
...
@@ -10,5 +10,10 @@ public enum DataSourceType
/**
* 主库
*/
MASTER
MASTER
,
/**
* 从库
*/
SLAVE
}
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
View file @
c404de17
...
...
@@ -43,7 +43,7 @@ public class DataSourceAspect
if
(
StringUtils
.
isNotNull
(
dataSource
))
{
DynamicDataSourceContextHolder
.
setDateSoureType
(
dataSource
.
value
());
DynamicDataSourceContextHolder
.
setDateSoureType
(
dataSource
.
value
()
.
name
()
);
}
try
...
...
ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java
View file @
c404de17
package
com
.
ruoyi
.
framework
.
config
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.sql.DataSource
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
...
...
@@ -9,64 +8,40 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.jdbc.core.BeanPropertyRowMapper
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
com.alibaba.druid.pool.DruidDataSource
;
import
com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder
;
import
com.ruoyi.common.enums.DataSourceType
;
import
com.ruoyi.framework.datasource.DynamicDataSource
;
import
com.ruoyi.framework.datasource.SysDatasource
;
/**
*
数据源配置类
*
druid 配置多数据源
*
* @author wangchl
*
* @author ruoyi
*/
@Configuration
public
class
DruidConfig
{
@Bean
@ConfigurationProperties
(
"spring.datasource.druid.master"
)
public
DataSource
masterDataSource
()
{
return
DruidDataSourceBuilder
.
create
().
build
();
}
public
class
DruidConfig
{
@Bean
@ConfigurationProperties
(
"spring.datasource.druid.master"
)
public
DataSource
masterDataSource
()
{
return
DruidDataSourceBuilder
.
create
().
build
();
}
@Bean
@ConfigurationProperties
(
"spring.datasource.druid.slave"
)
@ConditionalOnProperty
(
prefix
=
"spring.datasource.druid.slave"
,
name
=
"enabled"
,
havingValue
=
"true"
)
public
DataSource
slaveDataSource
()
{
return
DruidDataSourceBuilder
.
create
().
build
();
}
@Bean
@ConfigurationProperties
(
"spring.datasource.druid.slave"
)
@ConditionalOnProperty
(
prefix
=
"spring.datasource.druid.slave"
,
name
=
"enabled"
,
havingValue
=
"true"
)
public
DataSource
slaveDataSource
()
{
return
DruidDataSourceBuilder
.
create
().
build
();
}
/**
*
* @param masterDataSource
* @param slaveDataSource
* @return
*/
@Bean
(
name
=
"dynamicDataSource"
)
@Primary
public
DynamicDataSource
dataSource
(
DataSource
masterDataSource
,
DataSource
slaveDataSource
)
{
Map
<
Object
,
Object
>
targetDataSources
=
new
HashMap
<>();
// 设置数据源列表
targetDataSources
.
put
(
DataSourceType
.
MASTER
.
name
(),
masterDataSource
);
// 从数据库中直接读取数据库
JdbcTemplate
jdbcTemplate
=
new
JdbcTemplate
(
masterDataSource
);
List
<
SysDatasource
>
dsList
=
jdbcTemplate
.
query
(
"select * from sys_datasource"
,
new
Object
[]
{},
new
BeanPropertyRowMapper
<
SysDatasource
>(
SysDatasource
.
class
));
if
(
dsList
!=
null
)
{
for
(
SysDatasource
ds
:
dsList
)
{
DruidDataSource
dds
=
new
DruidDataSource
();
dds
.
setUrl
(
ds
.
getUrl
());
dds
.
setUsername
(
ds
.
getUser
());
dds
.
setPassword
(
ds
.
getPwd
());
dds
.
setDriverClassName
(
"com.mysql.cj.jdbc.Driver"
);
// dds.setDbType(dbType);
targetDataSources
.
put
(
ds
.
getName
(),
dds
);
}
}
return
new
DynamicDataSource
(
masterDataSource
,
targetDataSources
);
}
@Bean
(
name
=
"dynamicDataSource"
)
@Primary
public
DynamicDataSource
dataSource
(
DataSource
masterDataSource
,
DataSource
slaveDataSource
)
{
Map
<
Object
,
Object
>
targetDataSources
=
new
HashMap
<>();
targetDataSources
.
put
(
DataSourceType
.
MASTER
.
name
(),
masterDataSource
);
targetDataSources
.
put
(
DataSourceType
.
SLAVE
.
name
(),
slaveDataSource
);
return
new
DynamicDataSource
(
masterDataSource
,
targetDataSources
);
}
}
ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/SysDatasource.java
deleted
100644 → 0
View file @
cfcd48b6
package
com
.
ruoyi
.
framework
.
datasource
;
/**
* 动态数据源表 sys_datasource
*
* @author wangchl
* @date 2018-10-10
*/
public
class
SysDatasource
{
/** ID */
private
String
id
;
/** 密码 */
private
String
pwd
;
/** 用户 */
private
String
user
;
/** 地址 */
private
String
url
;
/** 名称 */
private
String
name
;
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getId
()
{
return
id
;
}
public
void
setPwd
(
String
pwd
)
{
this
.
pwd
=
pwd
;
}
public
String
getPwd
()
{
return
pwd
;
}
public
void
setUser
(
String
user
)
{
this
.
user
=
user
;
}
public
String
getUser
()
{
return
user
;
}
public
void
setUrl
(
String
url
)
{
this
.
url
=
url
;
}
public
String
getUrl
()
{
return
url
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getName
()
{
return
name
;
}
}
sql/sys_datasource.sql
deleted
100644 → 0
View file @
cfcd48b6
/*
Navicat Premium Data Transfer
Source Server : 127.0.0.1
Source Server Type : MySQL
Source Server Version : 50561
Source Host : 127.0.0.1:3306
Source Schema : ruoyi
Target Server Type : MySQL
Target Server Version : 50561
File Encoding : 65001
Date: 20/12/2018 11:48:21
*/
SET
NAMES
utf8mb4
;
SET
FOREIGN_KEY_CHECKS
=
0
;
-- ----------------------------
-- Table structure for sys_datasource
-- ----------------------------
DROP
TABLE
IF
EXISTS
`sys_datasource`
;
CREATE
TABLE
`sys_datasource`
(
`id`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
DEFAULT
''
COMMENT
'ID'
,
`pwd`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'密码'
,
`user`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'用户'
,
`url`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'IP地址'
,
`name`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'库名称'
,
`remark`
varchar
(
255
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
COMMENT
'备注'
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
COMMENT
=
'动态数据源'
ROW_FORMAT
=
Compact
;
-- ----------------------------
-- Records of sys_datasource
-- ----------------------------
INSERT
INTO
`sys_datasource`
VALUES
(
'1'
,
'123456'
,
'root'
,
'jdbc:mysql://127.0.0.1:3306/zwsd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true'
,
'zwsd'
,
'掌握时代'
);
SET
FOREIGN_KEY_CHECKS
=
1
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment