Spring Batch Bean Scope для преобразования устаревшего приложения

У нас есть устаревшее обычное Java-приложение с архитектурным потоком ниже

Фасад ----› Подключение удаленного IIOP Corba --› ServiceCommands

Над архитектурой мы хотим преобразовать как SpringBeans (Spring Boot) и вызвать из MVCController и выставить как RESTAPI.

MVCController ---› Facade --›Corba Connection --›ServiceCommands

Пожалуйста, сообщите, какую область Bean следует использовать для каждого уровня и наилучшую архитектуру, которой следует следовать.

  1. Фасад класса Bean - значение области = сеанс
  2. Значение Scope компонента класса CorbaConnection=session
  3. Значение Scope bean-компонента ServiceClass=singleton

person Rakesh    schedule 16.12.2020    source источник
comment
Почему это должно быть что-то иное, чем синглтон? Они сохраняют состояние? Если не использовать значение по умолчанию.   -  person M. Deinum    schedule 16.12.2020
comment
Фиксация CorbaConnection выполняется для каждого сеанса и поддерживает состояние соединения. Класс фасада можно аннотировать как синглтон, поскольку он не поддерживает состояние.   -  person Rakesh    schedule 16.12.2020
comment
Какой сеанс? Сессия Corba != http-сессия или если что-то еще не произойдет. Тот факт, что вы вводите контроллер/веб-API, не должен влиять на материал фасада-corba-commands.   -  person M. Deinum    schedule 16.12.2020
comment
Сессия Corba. Нам нужно объединить соединение corba, чтобы избежать задержки каждого http-запроса, потому что установление соединения займет время. Но если мы поддерживаем состояние фиксации сеанса corba, возникает проблема параллелизма. Любая идея, как мы можем создать пул соединений corba, такой как пул соединений hikari.   -  person Rakesh    schedule 17.12.2020
comment
CORBA слишком давно. Но вы можете попробовать использовать commons-pool (как общий пул объектов) для объединения соединений/сеансов corba.   -  person M. Deinum    schedule 17.12.2020


Ответы (1)


Мы решили проблему, создав пул соединений Corba и сделав каждое соединение из пула компонентом Spring с областью действия Session. Каждый запрос сеанса к corba будет в режиме прокси и зафиксирован после завершения @service. Все свойства пулов были добавлены для поддержания времени простоя и повторного подключения и возврата обратно в пул после завершения службы. Service и Facade остаются одноэлементным компонентом. Еще раз спасибо команде за поддержку, чтобы дать подсказки идей из вашего опыта.

person Rakesh    schedule 22.12.2020