2013-10-10 1 views
6

В настоящее время у нас есть корпоративное приложение, которое работает с пружиной и JPA. Сегодня мы планируем сервер следующего поколения.Альтернативы данных весны

Мы обсуждаем, использовать ли пружинные данные в нашем проекте? Это, по-видимому, увеличивает производительность и время разработки.

Есть ли альтернативы весенним данным? Почему бы не использовать весну и JPA? Что вы предлагаете?

Имейте в виду, что мы начинаем разрабатывать с нуля, так что никаких ограничений не имеется, кроме:

  1. мы используем MySQL и MongoDB
  2. мы код в Java
  3. мы будем развивать на стороне клиента код GWT.

В настоящее время мы имеем многоуровневую архитектуру. У нас есть уровень сервиса и уровень менеджера, который заботится о постоянной и деловой логике. Тот, кто строил это, не нашел веской причины для вставки третьего слоя DAO.

+0

Это не ответ на ваш вопрос, но я Интересно было бы услышать, что давайте искать альтернативы?Обычно люди перемещаются * в * Весенние данные для повышения производительности, но вы ищете альтернативы, кажется, указывают на определенные недостатки. Не могли бы вы обновить этот вопрос несколькими подробностями? –

ответ

2

Есть некоторые технические преимущества Spring Data более Spring + JPA, что в чистой среде SQL, я думаю, дать Весну ДАТе преимущества:

  • Spring Data использует тот же CrudRepository интерфейс для всех реализаций, так у вас будет меньше усилий для переключения между JPA на MongoDB.
  • Spring Data позволяет вам записывать одни и те же методы снова и снова. Вы просто добавить метод в интерфейс, и он будет генерировать для Вас (например, UserRepository.findByUsername())
  • Вы можете сохранить шаблонные на реализации REST для JPA, MongoDB и других (см http://projects.spring.io/spring-data-rest/)
  • Если вы хотите чтобы экспериментировать с другими службами сохранения или индексирования, тогда существуют реализации Spring Data для как зрелых, так и новых технологий, таких как Neo4j, Hadoop, Solr, ElasticSearch, fuzzydb.

Учитывая, что вы используете MySQL и MongoDB, я думаю, что Spring Data является сильным кандидатом, поскольку он позволяет разработчикам кода в API одного доступа к данным (Spring Data) вместо двух (JPA и клиент MongoDB Java) ,

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

Данные весны, на мой взгляд, очень хорошо подходят для Rich Domain, когда они сочетаются с инъекцией услуг с использованием Spring @Configurable.

Наконец, я бы сказал, что Spring Data также дает существенное преимущество при выполнении служб для таких вещей, как Spring Security и Spring Social, которые используют MongoDB или другие, а не SQL.

Мы сделали это в примере fuzzydb webapp, который можно найти here. (Отказ от ответственности: я являюсь единственным в последнее время последним коммиттером на fuzzydb и не трогал его в течение нескольких месяцев, но у нас есть live service на основе этого кода)