spring多数据库rest

zf9nrax1  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(354)

我们有一个springrest应用程序,它支持多个数据库。我们的restapi在sqlserver上,但是很少有客户机在mongodb和mysql上。我们必须以这样一种方式实现dao层:它支持所有3个数据库。
我们已经定义了3个spring概要文件-mssql、mongodb和mysql。默认配置文件是mssql。我们还为这些概要文件提供了3个不同的数据源。
我们的方法:我们提供3种不同的dao接口实现。如果staffingdao是一个接口,那么我们有如下实现:

@Profile("mssql")
 public class StaffingDAOMSSQLImpl implements StaffingDao

 @Profile("mongodb")
 public class StaffingDAOMongoImpl implements StaffingDao

 @Profile("mysql")
 public class StaffingDAOMySQLImpl implements StaffingDao

这是个好办法吗?
任何帮助都将不胜感激。
谢谢

ia2d9nvy

ia2d9nvy1#

@Profile 是一种有效的方法。
另一种方法是 @Conditional bean初始化。可能是这样的

@ConditionalOnResource(resources = "classpath:mysql.properties")
@Bean(name="staffingDao")
public StaffingDao staffingDao(){
   return new StaffingDAOMySQLImpl();
}

相关问题