在我们的项目中不可避免有时候和第三方对接中需要接入多数据源,一般来讲我们大多数是采用AOP方式去动态的调整数据源,也有通过Druid去配置主从数据源的,本篇文章主要介绍多个数据源分开使用的情况,我们采用的苞米豆团队的dynamic-datasource-spring-boot-starter 去实现多数据源
UserEntity
package org.wuyd.testdockgame.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
/**
* @author wuyd
* 2019/7/11 10:33
*/
@Data
@Builder
@TableName("user")
public class UserEntity implements Serializable {
@TableId("id")
private Integer id;
private String age;
private String name;
private String password;
private String sex;
}
UserMapper
package org.wuyd.testdockgame.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.wuyd.testdockgame.entity.UserEntity;
/**
* @author wuyd
* 2019/7/11 10:40
*/
@Mapper
public interface UserMapper extends BaseMapper {
}
UserService
package org.wuyd.testdockgame.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.wuyd.testdockgame.entity.UserEntity;
/**
* @author wuyd
* 2019/7/11 10:42
*/
public interface UserService extends IService {
}
两个实现类,不同数据源的UserServiceImpl
package org.wuyd.testdockgame.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.wuyd.testdockgame.entity.UserEntity;
import org.wuyd.testdockgame.mapper.UserMapper;
import org.wuyd.testdockgame.service.UserService;
/**
* @author wuyd
* 2019/7/11 10:43
*/
@Service("userService1")
public class UserService1Impl extends ServiceImpl implements UserService {
}
package org.wuyd.testdockgame.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.wuyd.testdockgame.entity.UserEntity;
import org.wuyd.testdockgame.mapper.UserMapper;
import org.wuyd.testdockgame.service.UserService;
/**
* @author wuyd
* 2019/7/11 10:43
*/
@DS("db2")
@Service("userService2")
public class UserService2Impl extends ServiceImpl implements UserService {
}
pom.xml
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.6.RELEASE
org.wuyd
test-dock-game
0.0.1
war
test-dock-game
测试用项目
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-tomcat
provided
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-configuration-processor
true
com.baomidou
mybatis-plus-boot-starter
3.1.0
mysql
mysql-connector-java
5.1.47
com.baomidou
dynamic-datasource-spring-boot-starter
2.4.2
p6spy
p6spy
3.8.0
配置文件
spring:
datasource:
p6spy: true
dynamic:
datasource:
master:
username: root
password:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test1?characterEncoding=utf8&useSSL=true
db2:
username: root
password:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test2?characterEncoding=utf8&useSSL=true
E:\dev\Java\jdk8\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:63232,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.profiles.active=dev -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:C:\Users\wuyd.wuyd\.IntelliJIdea2019.1\system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "E:\dev\Java\jdk8\jre\lib\charsets.jar;E:\dev\Java\jdk8\jre\lib\deploy.jar;E:\dev\Java\jdk8\jre\lib\ext\access-bridge-64.jar;E:\dev\Java\jdk8\jre\lib\ext\cldrdata.jar;E:\dev\Java\jdk8\jre\lib\ext\dnsns.jar;E:\dev\Java\jdk8\jre\lib\ext\jaccess.jar;E:\dev\Java\jdk8\jre\lib\ext\jfxrt.jar;E:\dev\Java\jdk8\jre\lib\ext\localedata.jar;E:\dev\Java\jdk8\jre\lib\ext\nashorn.jar;E:\dev\Java\jdk8\jre\lib\ext\sunec.jar;E:\dev\Java\jdk8\jre\lib\ext\sunjce_provider.jar;E:\dev\Java\jdk8\jre\lib\ext\sunmscapi.jar;E:\dev\Java\jdk8\jre\lib\ext\sunpkcs11.jar;E:\dev\Java\jdk8\jre\lib\ext\zipfs.jar;E:\dev\Java\jdk8\jre\lib\javaws.jar;E:\dev\Java\jdk8\jre\lib\jce.jar;E:\dev\Java\jdk8\jre\lib\jfr.jar;E:\dev\Java\jdk8\jre\lib\jfxswt.jar;E:\dev\Java\jdk8\jre\lib\jsse.jar;E:\dev\Java\jdk8\jre\lib\management-agent.jar;E:\dev\Java\jdk8\jre\lib\plugin.jar;E:\dev\Java\jdk8\jre\lib\resources.jar;E:\dev\Java\jdk8\jre\lib\rt.jar;E:\dev\IdeaProjects\test-dock-game\target\classes;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-thymeleaf\2.1.6.RELEASE\spring-boot-starter-thymeleaf-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter\2.1.6.RELEASE\spring-boot-starter-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot\2.1.6.RELEASE\spring-boot-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-logging\2.1.6.RELEASE\spring-boot-starter-logging-2.1.6.RELEASE.jar;E:\dev\maven-repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;E:\dev\maven-repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;E:\dev\maven-repository\org\apache\logging\log4j\log4j-to-slf4j\2.11.2\log4j-to-slf4j-2.11.2.jar;E:\dev\maven-repository\org\apache\logging\log4j\log4j-api\2.11.2\log4j-api-2.11.2.jar;E:\dev\maven-repository\org\slf4j\jul-to-slf4j\1.7.26\jul-to-slf4j-1.7.26.jar;E:\dev\maven-repository\org\yaml\snakeyaml\1.23\snakeyaml-1.23.jar;E:\dev\maven-repository\org\thymeleaf\thymeleaf-spring5\3.0.11.RELEASE\thymeleaf-spring5-3.0.11.RELEASE.jar;E:\dev\maven-repository\org\thymeleaf\thymeleaf\3.0.11.RELEASE\thymeleaf-3.0.11.RELEASE.jar;E:\dev\maven-repository\org\attoparser\attoparser\2.0.5.RELEASE\attoparser-2.0.5.RELEASE.jar;E:\dev\maven-repository\org\unbescape\unbescape\1.1.6.RELEASE\unbescape-1.1.6.RELEASE.jar;E:\dev\maven-repository\org\slf4j\slf4j-api\1.7.26\slf4j-api-1.7.26.jar;E:\dev\maven-repository\org\thymeleaf\extras\thymeleaf-extras-java8time\3.0.4.RELEASE\thymeleaf-extras-java8time-3.0.4.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-web\2.1.6.RELEASE\spring-boot-starter-web-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-json\2.1.6.RELEASE\spring-boot-starter-json-2.1.6.RELEASE.jar;E:\dev\maven-repository\com\fasterxml\jackson\core\jackson-databind\2.9.9\jackson-databind-2.9.9.jar;E:\dev\maven-repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;E:\dev\maven-repository\com\fasterxml\jackson\core\jackson-core\2.9.9\jackson-core-2.9.9.jar;E:\dev\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.9\jackson-datatype-jdk8-2.9.9.jar;E:\dev\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.9\jackson-datatype-jsr310-2.9.9.jar;E:\dev\maven-repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.9\jackson-module-parameter-names-2.9.9.jar;E:\dev\maven-repository\org\hibernate\validator\hibernate-validator\6.0.17.Final\hibernate-validator-6.0.17.Final.jar;E:\dev\maven-repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;E:\dev\maven-repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;E:\dev\maven-repository\com\fasterxml\classmate\1.4.0\classmate-1.4.0.jar;E:\dev\maven-repository\org\springframework\spring-web\5.1.8.RELEASE\spring-web-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-beans\5.1.8.RELEASE\spring-beans-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-webmvc\5.1.8.RELEASE\spring-webmvc-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-aop\5.1.8.RELEASE\spring-aop-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-context\5.1.8.RELEASE\spring-context-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-expression\5.1.8.RELEASE\spring-expression-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\projectlombok\lombok\1.18.8\lombok-1.18.8.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-tomcat\2.1.6.RELEASE\spring-boot-starter-tomcat-2.1.6.RELEASE.jar;E:\dev\maven-repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;E:\dev\maven-repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.21\tomcat-embed-core-9.0.21.jar;E:\dev\maven-repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.21\tomcat-embed-el-9.0.21.jar;E:\dev\maven-repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.21\tomcat-embed-websocket-9.0.21.jar;E:\dev\maven-repository\org\springframework\spring-core\5.1.8.RELEASE\spring-core-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-jcl\5.1.8.RELEASE\spring-jcl-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-configuration-processor\2.1.6.RELEASE\spring-boot-configuration-processor-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\apache\httpcomponents\httpclient\4.5.9\httpclient-4.5.9.jar;E:\dev\maven-repository\org\apache\httpcomponents\httpcore\4.4.11\httpcore-4.4.11.jar;E:\dev\maven-repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;E:\dev\maven-repository\org\apache\commons\commons-lang3\3.9\commons-lang3-3.9.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus-boot-starter\3.1.0\mybatis-plus-boot-starter-3.1.0.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus\3.1.0\mybatis-plus-3.1.0.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus-extension\3.1.0\mybatis-plus-extension-3.1.0.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus-core\3.1.0\mybatis-plus-core-3.1.0.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus-annotation\3.1.0\mybatis-plus-annotation-3.1.0.jar;E:\dev\maven-repository\org\mybatis\mybatis\3.5.0\mybatis-3.5.0.jar;E:\dev\maven-repository\com\github\jsqlparser\jsqlparser\1.4\jsqlparser-1.4.jar;E:\dev\maven-repository\org\mybatis\mybatis-spring\2.0.0\mybatis-spring-2.0.0.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-autoconfigure\2.1.6.RELEASE\spring-boot-autoconfigure-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-jdbc\2.1.6.RELEASE\spring-boot-starter-jdbc-2.1.6.RELEASE.jar;E:\dev\maven-repository\com\zaxxer\HikariCP\3.2.0\HikariCP-3.2.0.jar;E:\dev\maven-repository\org\springframework\spring-jdbc\5.1.8.RELEASE\spring-jdbc-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-tx\5.1.8.RELEASE\spring-tx-5.1.8.RELEASE.jar;E:\dev\maven-repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar;E:\dev\maven-repository\com\baomidou\dynamic-datasource-spring-boot-starter\2.4.2\dynamic-datasource-spring-boot-starter-2.4.2.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-aop\2.1.6.RELEASE\spring-boot-starter-aop-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\aspectj\aspectjweaver\1.9.4\aspectjweaver-1.9.4.jar;E:\dev\maven-repository\p6spy\p6spy\3.8.0\p6spy-3.8.0.jar;E:\dev\JetBrains\IntelliJ IDEA 2019.1.3\lib\idea_rt.jar" org.wuyd.testdockgame.TestDockGameApplication
Connected to the target VM, address: '127.0.0.1:63232', transport: 'socket'
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.6.RELEASE)
2019-07-11 14:31:22.411 INFO 15532 --- [ main] o.w.t.TestDockGameApplication : Starting TestDockGameApplication on DESKTOP-4VCGJNP with PID 15532 (E:\dev\IdeaProjects\test-dock-game\target\classes started by wuyd.wuyd in E:\dev\IdeaProjects\test-dock-game)
2019-07-11 14:31:22.413 INFO 15532 --- [ main] o.w.t.TestDockGameApplication : The following profiles are active: dev
2019-07-11 14:31:23.784 DEBUG 15532 --- [ main] c.b.m.a.MybatisPlusAutoConfiguration : Searching for mappers annotated with @Mapper
2019-07-11 14:31:23.784 DEBUG 15532 --- [ main] c.b.m.a.MybatisPlusAutoConfiguration : Using auto-configuration base package 'org.wuyd.testdockgame'
2019-07-11 14:31:25.076 INFO 15532 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 80 (http)
2019-07-11 14:31:25.173 INFO 15532 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-07-11 14:31:25.174 INFO 15532 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.21]
2019-07-11 14:31:25.458 INFO 15532 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/wuyd] : Initializing Spring embedded WebApplicationContext
2019-07-11 14:31:25.458 INFO 15532 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3014 ms
2019-07-11 14:31:25.807 INFO 15532 --- [ main] com.zaxxer.hikari.HikariDataSource : master - Starting...
2019-07-11 14:31:26.385 INFO 15532 --- [ main] com.zaxxer.hikari.HikariDataSource : master - Start completed.
2019-07-11 14:31:26.385 INFO 15532 --- [ main] com.zaxxer.hikari.HikariDataSource : db2 - Starting...
2019-07-11 14:31:26.418 INFO 15532 --- [ main] com.zaxxer.hikari.HikariDataSource : db2 - Start completed.
2019-07-11 14:31:26.418 INFO 15532 --- [ main] c.b.d.d.DynamicRoutingDataSource : 初始共加载 2 个数据源
2019-07-11 14:31:26.418 INFO 15532 --- [ main] c.b.d.d.DynamicRoutingDataSource : 动态数据源-加载 db2 成功
2019-07-11 14:31:26.418 INFO 15532 --- [ main] c.b.d.d.DynamicRoutingDataSource : 动态数据源-加载 master 成功
2019-07-11 14:31:26.418 INFO 15532 --- [ main] c.b.d.d.DynamicRoutingDataSource : 当前的默认数据源是单数据源,数据源名为 master
2019-07-11 14:31:26.655 DEBUG 15532 --- [ main] c.b.m.core.toolkit.GlobalConfigUtils : DeBug: MyBatis Plus Global configuration Initializing !
2019-07-11 14:31:27.549 INFO 15532 --- [ main] o.w.t.TestDockGameApplication : Started TestDockGameApplication in 5.697 seconds (JVM running for 7.4)
2019-07-11 14:33:32.196 INFO 15532 --- [p-nio-80-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/wuyd] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-07-11 14:33:32.196 INFO 15532 --- [p-nio-80-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2019-07-11 14:33:32.230 INFO 15532 --- [p-nio-80-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 34 ms
2019-07-11 14:33:32.295 DEBUG 15532 --- [p-nio-80-exec-1] c.b.d.d.DynamicRoutingDataSource : 从默认数据源中返回数据
2019-07-11 14:33:32.413 INFO 15532 --- [p-nio-80-exec-1] o.w.t.controller.ThymeleafController : [UserEntity(id=1, age=12, name=张三, password=123456, sex=男), UserEntity(id=2, age=15, name=张一, password=123456, sex=男), UserEntity(id=3, age=14, name=张四, password=123456, sex=女), UserEntity(id=4, age=13, name=张二, password=123456, sex=男)]
2019-07-11 14:33:32.418 DEBUG 15532 --- [p-nio-80-exec-1] c.b.d.d.DynamicRoutingDataSource : 从 db2 单数据源中返回数据源
2019-07-11 14:33:32.438 INFO 15532 --- [p-nio-80-exec-1] o.w.t.controller.ThymeleafController : [UserEntity(id=1, age=12, name=李一, password=123456, sex=男), UserEntity(id=2, age=11, name=李二, password=123456, sex=男), UserEntity(id=3, age=10, name=李三, password=1236543, sex=女)]
pom.xml
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.6.RELEASE
org.wuyd
test-dock-game
0.0.1
war
test-dock-game
测试用项目
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-tomcat
provided
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-configuration-processor
true
com.baomidou
mybatis-plus-boot-starter
3.1.0
mysql
mysql-connector-java
5.1.47
com.baomidou
dynamic-datasource-spring-boot-starter
2.5.5
p6spy
p6spy
3.8.0
com.alibaba
druid-spring-boot-starter
1.1.10
配置文件
spring:
datasource:
druid:
stat-view-servlet:
loginUsername: admin
loginPassword: 123456
dynamic:
druid: #以下是全局默认值,可以全局更改
minIdle: 5
maxActive: 20
filters: stat,wall # 注意这个值和druid原生不一致,默认启动了stat,wall
stat:
merge-sql: true
log-slow-sql: true
datasource:
master:
username: root
password:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test1?characterEncoding=utf8&useSSL=true
db2:
username: root
password:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test2?characterEncoding=utf8&useSSL=true
E:\dev\Java\jdk8\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:64668,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.profiles.active=dev -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:C:\Users\wuyd.wuyd\.IntelliJIdea2019.1\system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "E:\dev\Java\jdk8\jre\lib\charsets.jar;E:\dev\Java\jdk8\jre\lib\deploy.jar;E:\dev\Java\jdk8\jre\lib\ext\access-bridge-64.jar;E:\dev\Java\jdk8\jre\lib\ext\cldrdata.jar;E:\dev\Java\jdk8\jre\lib\ext\dnsns.jar;E:\dev\Java\jdk8\jre\lib\ext\jaccess.jar;E:\dev\Java\jdk8\jre\lib\ext\jfxrt.jar;E:\dev\Java\jdk8\jre\lib\ext\localedata.jar;E:\dev\Java\jdk8\jre\lib\ext\nashorn.jar;E:\dev\Java\jdk8\jre\lib\ext\sunec.jar;E:\dev\Java\jdk8\jre\lib\ext\sunjce_provider.jar;E:\dev\Java\jdk8\jre\lib\ext\sunmscapi.jar;E:\dev\Java\jdk8\jre\lib\ext\sunpkcs11.jar;E:\dev\Java\jdk8\jre\lib\ext\zipfs.jar;E:\dev\Java\jdk8\jre\lib\javaws.jar;E:\dev\Java\jdk8\jre\lib\jce.jar;E:\dev\Java\jdk8\jre\lib\jfr.jar;E:\dev\Java\jdk8\jre\lib\jfxswt.jar;E:\dev\Java\jdk8\jre\lib\jsse.jar;E:\dev\Java\jdk8\jre\lib\management-agent.jar;E:\dev\Java\jdk8\jre\lib\plugin.jar;E:\dev\Java\jdk8\jre\lib\resources.jar;E:\dev\Java\jdk8\jre\lib\rt.jar;E:\dev\IdeaProjects\test-dock-game\target\classes;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-thymeleaf\2.1.6.RELEASE\spring-boot-starter-thymeleaf-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter\2.1.6.RELEASE\spring-boot-starter-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot\2.1.6.RELEASE\spring-boot-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-logging\2.1.6.RELEASE\spring-boot-starter-logging-2.1.6.RELEASE.jar;E:\dev\maven-repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;E:\dev\maven-repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;E:\dev\maven-repository\org\apache\logging\log4j\log4j-to-slf4j\2.11.2\log4j-to-slf4j-2.11.2.jar;E:\dev\maven-repository\org\apache\logging\log4j\log4j-api\2.11.2\log4j-api-2.11.2.jar;E:\dev\maven-repository\org\slf4j\jul-to-slf4j\1.7.26\jul-to-slf4j-1.7.26.jar;E:\dev\maven-repository\org\yaml\snakeyaml\1.23\snakeyaml-1.23.jar;E:\dev\maven-repository\org\thymeleaf\thymeleaf-spring5\3.0.11.RELEASE\thymeleaf-spring5-3.0.11.RELEASE.jar;E:\dev\maven-repository\org\thymeleaf\thymeleaf\3.0.11.RELEASE\thymeleaf-3.0.11.RELEASE.jar;E:\dev\maven-repository\org\attoparser\attoparser\2.0.5.RELEASE\attoparser-2.0.5.RELEASE.jar;E:\dev\maven-repository\org\unbescape\unbescape\1.1.6.RELEASE\unbescape-1.1.6.RELEASE.jar;E:\dev\maven-repository\org\thymeleaf\extras\thymeleaf-extras-java8time\3.0.4.RELEASE\thymeleaf-extras-java8time-3.0.4.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-web\2.1.6.RELEASE\spring-boot-starter-web-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-json\2.1.6.RELEASE\spring-boot-starter-json-2.1.6.RELEASE.jar;E:\dev\maven-repository\com\fasterxml\jackson\core\jackson-databind\2.9.9\jackson-databind-2.9.9.jar;E:\dev\maven-repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;E:\dev\maven-repository\com\fasterxml\jackson\core\jackson-core\2.9.9\jackson-core-2.9.9.jar;E:\dev\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.9\jackson-datatype-jdk8-2.9.9.jar;E:\dev\maven-repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.9\jackson-datatype-jsr310-2.9.9.jar;E:\dev\maven-repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.9\jackson-module-parameter-names-2.9.9.jar;E:\dev\maven-repository\org\hibernate\validator\hibernate-validator\6.0.17.Final\hibernate-validator-6.0.17.Final.jar;E:\dev\maven-repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;E:\dev\maven-repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;E:\dev\maven-repository\com\fasterxml\classmate\1.4.0\classmate-1.4.0.jar;E:\dev\maven-repository\org\springframework\spring-web\5.1.8.RELEASE\spring-web-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-beans\5.1.8.RELEASE\spring-beans-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-webmvc\5.1.8.RELEASE\spring-webmvc-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-aop\5.1.8.RELEASE\spring-aop-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-context\5.1.8.RELEASE\spring-context-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-expression\5.1.8.RELEASE\spring-expression-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\projectlombok\lombok\1.18.8\lombok-1.18.8.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-tomcat\2.1.6.RELEASE\spring-boot-starter-tomcat-2.1.6.RELEASE.jar;E:\dev\maven-repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;E:\dev\maven-repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.21\tomcat-embed-core-9.0.21.jar;E:\dev\maven-repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.21\tomcat-embed-el-9.0.21.jar;E:\dev\maven-repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.21\tomcat-embed-websocket-9.0.21.jar;E:\dev\maven-repository\org\springframework\spring-core\5.1.8.RELEASE\spring-core-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-jcl\5.1.8.RELEASE\spring-jcl-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-configuration-processor\2.1.6.RELEASE\spring-boot-configuration-processor-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\apache\httpcomponents\httpclient\4.5.9\httpclient-4.5.9.jar;E:\dev\maven-repository\org\apache\httpcomponents\httpcore\4.4.11\httpcore-4.4.11.jar;E:\dev\maven-repository\commons-codec\commons-codec\1.11\commons-codec-1.11.jar;E:\dev\maven-repository\org\apache\commons\commons-lang3\3.9\commons-lang3-3.9.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus-boot-starter\3.1.0\mybatis-plus-boot-starter-3.1.0.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus\3.1.0\mybatis-plus-3.1.0.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus-extension\3.1.0\mybatis-plus-extension-3.1.0.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus-core\3.1.0\mybatis-plus-core-3.1.0.jar;E:\dev\maven-repository\com\baomidou\mybatis-plus-annotation\3.1.0\mybatis-plus-annotation-3.1.0.jar;E:\dev\maven-repository\org\mybatis\mybatis\3.5.0\mybatis-3.5.0.jar;E:\dev\maven-repository\com\github\jsqlparser\jsqlparser\1.4\jsqlparser-1.4.jar;E:\dev\maven-repository\org\mybatis\mybatis-spring\2.0.0\mybatis-spring-2.0.0.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-autoconfigure\2.1.6.RELEASE\spring-boot-autoconfigure-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-jdbc\2.1.6.RELEASE\spring-boot-starter-jdbc-2.1.6.RELEASE.jar;E:\dev\maven-repository\com\zaxxer\HikariCP\3.2.0\HikariCP-3.2.0.jar;E:\dev\maven-repository\org\springframework\spring-jdbc\5.1.8.RELEASE\spring-jdbc-5.1.8.RELEASE.jar;E:\dev\maven-repository\org\springframework\spring-tx\5.1.8.RELEASE\spring-tx-5.1.8.RELEASE.jar;E:\dev\maven-repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar;E:\dev\maven-repository\com\alibaba\druid-spring-boot-starter\1.1.10\druid-spring-boot-starter-1.1.10.jar;E:\dev\maven-repository\com\alibaba\druid\1.1.10\druid-1.1.10.jar;E:\dev\maven-repository\org\slf4j\slf4j-api\1.7.26\slf4j-api-1.7.26.jar;E:\dev\maven-repository\com\baomidou\dynamic-datasource-spring-boot-starter\2.5.5\dynamic-datasource-spring-boot-starter-2.5.5.jar;E:\dev\maven-repository\org\springframework\boot\spring-boot-starter-aop\2.1.6.RELEASE\spring-boot-starter-aop-2.1.6.RELEASE.jar;E:\dev\maven-repository\org\aspectj\aspectjweaver\1.9.4\aspectjweaver-1.9.4.jar;E:\dev\maven-repository\p6spy\p6spy\3.8.0\p6spy-3.8.0.jar;E:\dev\JetBrains\IntelliJ IDEA 2019.1.3\lib\idea_rt.jar" org.wuyd.testdockgame.TestDockGameApplication
Connected to the target VM, address: '127.0.0.1:64668', transport: 'socket'
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.6.RELEASE)
2019-07-11 15:16:29.200 INFO 14152 --- [ main] o.w.t.TestDockGameApplication : Starting TestDockGameApplication on DESKTOP-4VCGJNP with PID 14152 (E:\dev\IdeaProjects\test-dock-game\target\classes started by wuyd.wuyd in E:\dev\IdeaProjects\test-dock-game)
2019-07-11 15:16:29.202 INFO 14152 --- [ main] o.w.t.TestDockGameApplication : The following profiles are active: dev
2019-07-11 15:16:29.701 DEBUG 14152 --- [ main] c.b.m.a.MybatisPlusAutoConfiguration : Searching for mappers annotated with @Mapper
2019-07-11 15:16:29.702 DEBUG 14152 --- [ main] c.b.m.a.MybatisPlusAutoConfiguration : Using auto-configuration base package 'org.wuyd.testdockgame'
2019-07-11 15:16:30.157 INFO 14152 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 80 (http)
2019-07-11 15:16:30.173 INFO 14152 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-07-11 15:16:30.174 INFO 14152 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.21]
2019-07-11 15:16:30.301 INFO 14152 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/wuyd] : Initializing Spring embedded WebApplicationContext
2019-07-11 15:16:30.302 INFO 14152 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1074 ms
2019-07-11 15:16:30.400 INFO 14152 --- [ main] c.b.d.d.DynamicDataSourceCreator : 动态数据源-检测到druid存在,如配置中未指定type,druid会默认配置
2019-07-11 15:16:30.529 INFO 14152 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1,master} inited
2019-07-11 15:16:30.530 INFO 14152 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-2,db2} inited
2019-07-11 15:16:30.530 INFO 14152 --- [ main] c.b.d.d.DynamicRoutingDataSource : 初始共加载 2 个数据源
2019-07-11 15:16:30.530 INFO 14152 --- [ main] c.b.d.d.DynamicRoutingDataSource : 动态数据源-加载 db2 成功
2019-07-11 15:16:30.530 INFO 14152 --- [ main] c.b.d.d.DynamicRoutingDataSource : 动态数据源-加载 master 成功
2019-07-11 15:16:30.530 INFO 14152 --- [ main] c.b.d.d.DynamicRoutingDataSource : 当前的默认数据源是单数据源,数据源名为 master
2019-07-11 15:16:30.769 DEBUG 14152 --- [ main] c.b.d.d.DynamicRoutingDataSource : 从默认数据源中返回数据
2019-07-11 15:16:33.371 INFO 14152 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 80 (http) with context path '/wuyd'
2019-07-11 15:16:33.373 INFO 14152 --- [ main] o.w.t.TestDockGameApplication : Started TestDockGameApplication in 4.446 seconds (JVM running for 5.003)
2019-07-11 15:16:49.660 INFO 14152 --- [p-nio-80-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/wuyd] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-07-11 15:16:49.660 INFO 14152 --- [p-nio-80-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2019-07-11 15:16:49.673 INFO 14152 --- [p-nio-80-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 13 ms
2019-07-11 15:16:49.967 DEBUG 14152 --- [p-nio-80-exec-2] c.b.d.d.DynamicRoutingDataSource : 从默认数据源中返回数据
2019-07-11 15:16:50.347 INFO 14152 --- [p-nio-80-exec-2] o.w.t.controller.ThymeleafController : [UserEntity(id=1, age=12, name=张三, password=123456, sex=男), UserEntity(id=2, age=15, name=张一, password=123456, sex=男), UserEntity(id=3, age=14, name=张四, password=123456, sex=女), UserEntity(id=4, age=13, name=张二, password=123456, sex=男)]
2019-07-11 15:16:50.351 DEBUG 14152 --- [p-nio-80-exec-2] c.b.d.d.DynamicRoutingDataSource : 从 db2 单数据源中返回数据源
2019-07-11 15:16:50.424 INFO 14152 --- [p-nio-80-exec-2] o.w.t.controller.ThymeleafController : [UserEntity(id=1, age=12, name=李一, password=123456, sex=男), UserEntity(id=2, age=11, name=李二, password=123456, sex=男), UserEntity(id=3, age=10, name=李三, password=1236543, sex=女)]