具有多个数据库的 Spring REST



我们有一个支持多个数据库的Spring REST应用程序。我们的REST API在SQL Server上,但很少有客户端在MongoDB和MySQL上。我们必须以支持所有 3 个数据库的方式实现我们的 DAO 层。

我们已经定义了3个弹簧配置文件 - 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

这是好方法吗?

任何帮助将不胜感激。

谢谢

@Profile是一种

有效的方法。

另一种方法是@Conditional Bean 初始化。可能是这样的

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

相关内容

  • 没有找到相关文章

最新更新