Мы имеем дело с мобильным веб-приложением против существующего веб-приложения Java - по крайней мере, для базы данных этого приложения.
Мы используем только базу данных исходного приложения, потому что исходное приложение построено на заказном решении ORM и Struts 1.1, который показывает его возраст. Так что это будет неким подтверждением концепции того, что можно сделать с помощью современных инструментов.
Мы решили использовать мобильный JQuery на внешнем интерфейсе, чтобы повысить совместимость устройств. На заднем плане мы пока пойдем с JPA ... возможно, перейдем в Hibernate по дороге. Но мы хотели бы предоставить нашей модели сервис RESTful, чтобы убить двух зайцев одним выстрелом (оригинальное приложение взаимодействует с несколькими сторонними разработчиками, которым мы хотели бы предоставить доступ через простой интерфейс REST, который, как оказалось, имеет много перекрытия, с точки зрения данных, с помощью мобильного модуля.)
Итак, вопрос в том, какой уровень контроллера лучше всего связывает мобильный интерфейс JQuery с сервером RESTful?
Нам бы хотелось, чтобы каркас контроллера:
- Не слишком навязчиво. то есть нам не нужно привязываться к этой конкретной реализации из-за жестко установленных зависимостей, разбросанных по всему коду.
- Основан на аннотациях или слишком сложен по соглашению по конфигурации. или и то и другое, поэтому мы не пишем стопки XML-клея
- Не несет в себе ничего, что мы не будем использовать ... то есть оно максимально прилипает к уровню контроллера
- Может обрабатывать REST с одного конца и AJAX с другого без особых проблем
- Чем больше сообщество, тем лучше
- Чем проще приступить к работе, не ставя под угрозу ни один из других пунктов, тем лучше.
Мы начали изучать Struts2, SpringMVC, Stripes, Play! и т.д., но я надеюсь, что некоторые мудрые советы от сообщества эрудитов SO помогут сузить поле.
Если вам нужно что-то прояснить, я буду рад это сделать.