Я заинтересован в портировании существующего приложения, написанного с использованием Spring / Struts2 / Hibernate, на GAE. Я не читал много успешных историй об этом, поэтому в первую очередь мне интересно, будет ли разумно использовать какие-либо из них там. Я хочу избавиться от спящего режима и использовать вместо этого хранилище данных Google, поскольку очевидно, что спящий режим не является хорошим выбором для GAE. Поэтому мои основные вопросы относятся к Struts2 (веб-работы) / Spring. Мое приложение использует простые страницы JSP, никакой другой шаблонный механизм.
Мой вопрос касается следующих аспектов:
- В настоящее время каждая страница имеет связанные действия. Каждый запрос принимается диспетчером Struts, после чего он отправляется определенному классу действий, после чего он вызывает определенный JSP в соответствии с файлом конфигурации.
- Все создается весной (действия, фабрики, спящие слои, ...)
- Управление безопасностью осуществляется через Spring Security (ранее acegi).
Мое первое впечатление - я должен избавиться от Spring, потому что GAE должен управлять всеми объектами, чтобы работать в распределенной среде. У меня есть несколько антагонистических мыслей относительно Struts. Однако, если я от них избавлюсь, я не уверен, стоит ли мне это делать, и если да, то что выбрать вместо этого. Достаточно ли хорош GAE, чтобы предоставить все необходимое? Я предполагаю, что GAE должен обработать создание экземпляров, чтобы получить действительно масштабируемое решение. Как насчет управления сеансом, безопасности и пользовательских привилегий? GAE предоставляет хороший механизм для управления ими за сценой, или я должен вручную обрабатывать их, как в классическом решении JSP? Я закончу иметь огромный web.xml?
Существуют ли какие-либо фреймворки, которые хорошо вписываются в GAE и которые могут заменить Spring / Struts? Мне было бы интересно узнать от кого-то, кто испытывал эти проблемы в GAE.