我们有一个支持多个数据库的Spring REST应用程序。我们的REST API在SQL Server上,但很少有客户端在MongoDB和MySQL上。我们必须以支持所有3个数据库的方式实现我们的DAO层。
我们定义了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
这是好方法吗?
任何帮助都将不胜感激。
由于
答案 0 :(得分:0)
@Profile
是一种有效的方法。
另一种方法可以是@Conditional
bean初始化。可能是这样的
@ConditionalOnResource(resources = "classpath:mysql.properties")
@Bean(name="staffingDao")
public StaffingDao staffingDao(){
return new StaffingDAOMySQLImpl();
}