Spring Boot 2.0多数据源配置方法实例详解

2025-05-29 0 94

两个数据库实例,一个负责读,一个负责写。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
datasource-reader:

type: com.alibaba.druid.pool.druiddatasource

url: jdbc:mysql://192.168.43.61:3306/test?useunicode=true&characterencoding=utf8&autoreconnect=true&usessl=false

username: icbc

password: icbc

driver-class-name: com.mysql.jdbc.driver

continue-on-error: false

sql-script-encoding: utf-8

datasource-writer:

type: com.alibaba.druid.pool.druiddatasource

url: jdbc:mysql://192.168.43.61:3306/hdfs?useunicode=true&characterencoding=utf8&autoreconnect=true&usessl=false

username: icbc

password: icbc

driver-class-name: com.mysql.jdbc.driver

continue-on-error: false

sql-script-encoding: utf-8

读数据库配置

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31
@configuration

@enabletransactionmanagement

@enablejparepositories(entitymanagerfactoryref = "entitymanagerfactoryprimary", transactionmanagerref = "transactionmanagerprimary", basepackages = {

"cn.cib.repository.read"})

public class repositoryprimaryconfig {

@autowired

@qualifier("r_ds")

private datasource r_ds;

@bean(destroymethod = "", name = "entitymanagerprimary")

@primary

public entitymanager entitymanager() {

return entitymanagerfactoryprimary().getobject().createentitymanager();

}

@bean(destroymethod = "", name = "entitymanagerfactoryprimary")

@primary

public localcontainerentitymanagerfactorybean entitymanagerfactoryprimary() {

hibernatejpavendoradapter jpavendoradapter = new hibernatejpavendoradapter();

localcontainerentitymanagerfactorybean factorybean = new localcontainerentitymanagerfactorybean();

factorybean.setdatasource(r_ds);

factorybean.setjpavendoradapter(jpavendoradapter);

factorybean.setjpaproperties(hibernatepropertiesbuilder.hibernateproperties());

factorybean.setpackagestoscan("cn.cib.repository.read", "cn.cib.entity.read");

factorybean.setpersistenceunitname("read");

return factorybean;

}

@bean(destroymethod = "", name = "transactionmanagerprimary")

@primary

platformtransactionmanager transactionmanagerprimary() {

return new jpatransactionmanager(entitymanagerfactoryprimary().getobject());

}

}

写数据库配置

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28
@configuration

@enabletransactionmanagement

@enablejparepositories(entitymanagerfactoryref = "entitymanagerfactorysecondary", transactionmanagerref = "transactionmanagersecondary", basepackages = {

"cn.cib.repository.write"})

public class repositorysecondaryconfig {

@autowired

@qualifier("w_ds")

private datasource w_ds;

@bean(destroymethod = "", name = "entitymanagersecondary")

public entitymanager entitymanager() {

return entitymanagerfactorysecondary().getobject().createentitymanager();

}

@bean(destroymethod = "", name = "entitymanagerfactorysecondary")

public localcontainerentitymanagerfactorybean entitymanagerfactorysecondary() {

hibernatejpavendoradapter jpavendoradapter = new hibernatejpavendoradapter();

localcontainerentitymanagerfactorybean factorybean = new localcontainerentitymanagerfactorybean();

factorybean.setdatasource(w_ds);

factorybean.setjpavendoradapter(jpavendoradapter);

factorybean.setjpaproperties(hibernatepropertiesbuilder.hibernateproperties());

factorybean.setpackagestoscan("cn.cib.repository.write","cn.cib.entity.write");

factorybean.setpersistenceunitname("write");

return factorybean;

}

@bean(destroymethod = "", name = "transactionmanagersecondary")

platformtransactionmanager transactionmanagersecondary() {

return new jpatransactionmanager(entitymanagerfactorysecondary().getobject());

}

}

hibernate相关属性配置

?

1

2

3

4

5

6

7

8

9

10
public class hibernatepropertiesbuilder {

public static properties hibernateproperties() {

final properties hibernateproperties = new properties();

hibernateproperties.setproperty("hibernate.dialect", "org.hibernate.dialect.mysql5dialect");

hibernateproperties.setproperty("hibernate.hbm2ddl.auto", "update");

hibernateproperties.setproperty("hibernate.show_sql", "true");

hibernateproperties.setproperty("hibernate.format_sql", "true");

return hibernateproperties;

}

}

总结

以上所述是小编给大家介绍的spring boot 2.0多数据源配置方法实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

原文链接:https://blog.csdn.net/kangkanglou/article/details/82683177

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Spring Boot 2.0多数据源配置方法实例详解 https://www.kuaiidc.com/111184.html

相关文章

发表评论
暂无评论