Spring REST с несколькими базами данных

0

У нас есть приложение Spring REST, которое поддерживает несколько баз данных. Наши API REST находятся на SQL Server, но некоторые из них находятся на MongoDB и MySQL. Мы должны реализовать наш уровень 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

Это хороший подход?

Любая помощь будет оценена по достоинству.

Спасибо

  • 0
    Поскольку у вас разные базы данных, вам нужен другой подход, чтобы получить данные в одном едином формате, который вы можете передать своему бизнес-уровню, поэтому, по моему мнению, этот подход является действительным и будет работать.
Теги:
sql-server
spring-rest
spring-profiles

1 ответ

0

@Profile - действительный подход.

Другим подходом может быть инициализация @Conditional bean. Может быть что-то вроде этого

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню