软件的透明化设计原则
以下以多数据源为例.
一般ORM工具都会提供多数据源方式. 但要在工程里加入多数据源功能,需要编写太多的代码,
对开发者是一种极大的负担.
而最理想的,要数透明化,即:
对以前的代码无需修改,该功能对代码是透明的,即无需额外编码。
下面看下ORM工具Bee是如何做到的:
1、
DB读写分离、一主多从
添加DB读写分离、一主多从的,仅分库,对以前的代码无需修改,该功能对代码是透明的.
需要在bee.properties配置文件配置以下信息即可.
bee.dosql.multi-DS.enable=true
#1:类名字段名与数据库信息映射问题:only r/w, one master and more slave; 2:only more database (table name is same)
bee.dosql.multi-DS.type=1
bee.dosql.multi-DS.defalut-DS=ds1
#when type is 1
bee.dosql.multi-DS.wDB=ds1
bee.dosql.multi-DS.rDB=ds2,ds3
#poll:1, rand:2
bee.dosql.multi-DS.rDB.routeWay=1
2、
仅分库
only more database
#when type is 2
bee.dosql.multi-DS.db=ds1,ds2,ds3
#不同ds用分号隔开,同一ds用逗号隔开.Different DS are separated by semicolons and the same DS by commas.
bee.dosql.multi-DS.match.entityClassPath=ds2:com.xxx.aa.User,com.xxx.bb.*,com.xxx.cc.**;ds3:com.xxx.dd.User
bee.dosql.multi-DS.match.table=ds2:user
Bee 在添加多数据源时,仅需要添加配置,不需要更改代码。
既保护了原来的软件资产,也减轻了开发者的负担。
想了解更多实现细节,请查看源码。