yml连接两个mysql数据库_SpringBoot多数据源配置连接两个
数据库(Sprin。。。
Boot项⽬原配Mysql数据库 。业务需要加上sqlserver数据库  ⽹上看了两天  趟了不少坑。
其实⽹上帖⼦挺全的,我遇到的问题没有太多相关介绍。现在搞好后分享给⼤家,⾃⼰也做个记录。
1.⾸先 依赖配置
按需配置重点是数据库jar包跟bootjar包。版本⽆需考虑
com.alibaba
druid
1.1.14
mysql
mysql-connector-java
runtime
org.jfree
jfreechart
1.0.19
xml-apis
xml-apis
bcprov-jdk14
bouncycastle
org.springframework.boot
spring-boot-devtools
true
org.springframework.boot
spring-boot-starter-test
test
junit
junit
com.auth0
java-jwt
3.4.0
org.apachemons
commons-pool2
org.apachemons
commons-lang3 net.sf.json-lib
json-lib
2.4
jdk15
org.projectlombok lombok
com.itextpdf
itextpdf
5.4.2
l xmlworker
5.4.1
com.itextpdf
itext-asian
5.2.0
org.xhtmlrenderer flying-saucer-pdf
9.0.3
org.freemarker freemarker
io.springfox
springfox-swagger2 2.9.2
io.springfox
springfox-swagger-ui 2.9.2
commons-io commons-io
mysql下载jar包2.2
org.drools
drools-core
7.16.0.Final
org.drools
drools-compiler
7.16.0.Final
org.drools
drools-templates
7.16.0.Final
org.kie
kie-api
7.16.0.Final
org.kie
kie-spring
7.16.0.Final
javax.servlet
javax.servlet-api
javax.servlet
jstl
at.embed
tomcat-embed-jasper
at
tomcat-jsp-api
org.springframework.boot
spring-boot-configuration-processor
true
上⾯是pom    (我懒了,不想摘出来。说实话我们单⼀项⽬boot  依赖我都没动,⼿动加了个sqlserver数据库jar包,其他的都没改) 2.yml配置
spring:
datasource:
test1:
jdbc-url: jdbc:mysql://192.168.0.150:3306/gdsdb?useUnicode=true&characterEncoding=UTF-
8&useSSL=false&serverTimezone=UTC
username: root
password: ***
driver-class-name: sql.cj.jdbc.Driver
test2:
jdbc-url: jdbc:sqlserver://192.168.0.150:1433;DatabaseName=gdsdb
username: sa
password: ***
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
我这⾥使⽤的是yml    不管是yml和另外⼀直格式都可以。格式不⼀样⽽已
介绍:  spring:datasource 就不讲了
1.  test1  test2 是⾃定义名称,可以更换
2.数据库路径 名称必须是 jdbc-url    不是这个会报错
3. 类型 boot2.0以后 driver-class-name
3.启动类
//@EnableScheduling
//@SpringBootApplication(exclude={DataSourceAutoConfiguration.class},scanBasePackages =
{"com.XXX.XXX","com.XXX.XXX","com.XXX.XXX"})
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class Gds2KApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Gds2KApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Gds2KApplication.class);
}
}
这⾥要说明⼀下@EnableScheduling 是定时器相关注解,但是下⾯有配置取消Boot⾃动配置    所以会有出⼊。因为我们⽬前项⽬中没⽤到定时器。所以暂时注掉了,我准备以后有需要再研究怎么开启。
@SpringBootApplication
有scanBasePackages 就注掉。  我这边原本同事加上了 。我测这个发现冲突。注释掉后测试好像没问题
exclude={DataSourceAutoConfiguration.class} 要加上这句,作⽤是取消Boot⾃动配置。使⽤咱们⾃⼰配置的信息。
@MapperScan(basePackages= 这个注解 删掉吧 。因为在那两个⽂件⾥⾯有加,这个位置就不⽤了。
4.⾃主配置 ⽂件
在controller同级加个dataconfig(名字可更换)
把这两个⽂件直接粘进去(我附带⽂件⾥⾯有demo  可直接下载)  因为我是两个数据库。所以两个⽂件。如果配置多个数据库 可以多配置⽂件。⾥⾯内容是⼀样的。下⾯是需要修改的内容
讲解:
1.红框1的位置。是你数据库mapper包的路径
2.红框2的位置。是你yml⽂件配置的名称
3.⾥⾯有个依赖引错了。把上⾯import删了 再引个boot的就⾏。
到这⾥就完成了,可以启动尝试
遇到问题 再缕⼀缕⽂章 看看是哪⾥漏了。实在不到错误留⾔给我
demo下载地址
有两个都遇到的问题
Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured 可以看我这篇⽂章      ⽂章链接

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。