play framework 如何支持多数据源

play framework 如何支持多数据源现有的问题:play1.2.4两台数据库服务器,但是play1.2.4并不支持同时连接两台数据库服务器。

大家好,欢迎来到IT知识分享网。

有段时间没有写博客了,但今天又写一篇了,主要是因为这事有一丝自己的思考和动手实践,所以就记录下来了。

现有的问题: play 1.2.4 两台数据库服务器,但是play1.2.4 并不支持同时连接两台数据库服务器,如何解决这个问题?

问题的解决步骤:

1: 研究play是如何连接上一台数据库服务器的。

play 是通过db这个module来完成数据库相关的操作的。

主要流程

配置文件 —-> 构建DataSource —->Ejb3Configuration —–> EntityManagerFactory —–> EntityManager ——–> JPA

2: 解决问题的办法

2.1 修改现有module来实现支持多数据源,网上搜到关于此类的解决方法比较多,然后通过 JPA.em(“datasourse”) 来切换数据源。 当然这存在相当大的问题,一是不支持JPA的操作,二是即使实现了,现有代码需要修改的地方太多太多,三是根本没有能力来修改这个module。

2.2 将现有module的功能复制一份用来实现连接第二台服务器的功能。当然我选择了后者

3: 实现的步骤

3.1: db 文件夹复制一份

play framework 如何支持多数据源

3.2: 修改了db1文件中相关文件的包名。

play framework 如何支持多数据源

3.3 修改了获取的配置项

play framework 如何支持多数据源

3.4 : 修改了enhance部分的功能

play framework 如何支持多数据源

3.5 反复测试几次(10来次),直到与db相关的所有地方修改为db1,至此完成了db模块功能的复制。

3.6 重新打包。 有build.xml 当然是使用ant来进行构建。但具体使用哪个版本的ant也小有学问,毕竟不是任意版本的ant都行的。也不会有人会告诉你jar包中的MANIFEST.MF 文件中包含了构建工具相关的信息。

3.7 往play中添加插件

play framework 如何支持多数据源

3.8 替换掉原来的jar,进行测试。

play framework 如何支持多数据源

play framework 如何支持多数据源

遗留的问题,所有的model在两台服务器上都建了对应的数据表,虽然这对使用几乎没有影响。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/58655.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信