Несколько Spring MVC в одном аппликейшне
От: rosencrantz США  
Дата: 30.11.20 18:08
Оценка:
Аппликейшн на Spring MVC выставляет несколько разных REST API-ев. Все эти API внутри используют на 90% один и тот же код, но отличаются интерфейсно — нюансы сериализации DTO, всякие там HandlerMethodArgumentResolver'ы, и т.д. Можно как-то без залезания глубоко во внутренности Spring MVC описать несколько отдельных конфигураций и выставить их поотдельности в /api1, /api2, и т.д.?

Псевдокод:

// для этих эндпоинтов хочется никогда не менять контракты
@EnableWebMvc("/public")
class Api1Config {
  ...

  @Bean
  PublicUsersController c1(UsersRepository usersRepository) { ... }

  @Bean
  PublicOrdersController c2(OrdersRepository ordersRepository) { ... }
}

// для этих эндпоинтов хочется менять контракты когда хочу
@EnableWebMvc("/private")
class Api2Config {
  ...

  @Bean
  PrivateUsersController c3(UsersRepository usersRepository) { ... }

  @Bean
  PrivateOrdersController c4(OrdersRepository ordersRepository) { ... }
}


Понятно, что есть вариант — запускать 2 разных аппликейшна с разными активными профилями, но хочется оставить именно 1 аппликейшн и желательно 1 спринговый контекст.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.