play framework 如何支持多数据源
有段时间没有写博客了,但今天又写一篇了,主要是因为这事有一丝自己的思考和动手实践,所以就记录下来了。 现有的问题: 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 文件夹复制一份 3.2: 修改了db1文件中相关文件的包名。 3.3 修改了获取的配置项 3.4 : 修改了enhance部分的功能 3.5 反复测试几次(10来次)