Есть ли какие-либо примеры/руководства по использованию Spring 3.0 с Cassandra в качестве бэкэнда?[закрыто]

StackOverflow https://stackoverflow.com/questions/2471811

Вопрос

Как я написал в заголовке, я пытаюсь изучить Spring 3.0 (я уже знаю Django, Pylons и несколько более простых фреймворков MVC) и пытаюсь использовать Cassandra в качестве бэкэнда для своего веб-приложения.

Есть ли реальные примеры этого?Или, может быть, какие-нибудь уроки?Я знаю о существовании документации по обеим технологиям, но ищу что-то «более быстрое», чтобы прочитать и начать работать.

Это было полезно?

Решение

Я автор Гектора https://github.com/rantav/hector, ведущего Java-клиента для Cassandra, поэтому я бы посоветовал вам взглянуть на его возможности.

Хотя лично я не использовал гектор со пружиной, мы получили несколько дополнений, которые добавили поддержку пружины.См. например https://github.com/rantav/hector/blob/master/core/src/test/resources/cassandra-context-test-v2.xml и https://github.com/rantav/hector/blob/master/core/src/test/resources/cassandra-context-test-v2-new.xml

Другие советы

Если вы уже знакомы с платформами MVC, то вы должны знать, что база данных/хранилище данных, которую вы используете в серверной части, не должна влиять на ваше приложение MVC в целом или на то, как вы его структурируете - это должно влиять только на ваш уровень данных и на то, как он работает. извлекает данные.

В Spring MVC общепринятой практикой является представление вашей модели данных как серии «моделей/классов предметной области», которые обычно представляют собой просто POJO для хранения ваших данных.«Домен» здесь означает, что он относится к вашему проблемному домену;поэтому, если у вас есть приложение, которое работает с клиентами, заказывающими товары, вам хотелось бы иметь Customer класс, ан Order класс и т. д.

Каждый из трех уровней вашего приложения MVC — контроллеры, уровень сервиса/бизнес-логики и уровень DAO — взаимодействует с этими классами модели предметной области.Поскольку уровень DAO отвечает за получение или обновление этих данных на серверной стороне, это означает, что именно уровень DAO должен знать, как получить ваши данные. Customer или Order класс от Cassandra, как обновить некоторые Customer поля и т. д.

Таким образом, нет ничего особенного в том, как вы будете создавать само приложение Spring MVC при использовании Cassandra или любой другой базы данных «NoSQL».Вам просто нужно будет предоставить различные реализации ваших классов DAO, которые могут взаимодействовать с Cassandra.

Если вы спрашиваете, существуют ли какие-либо готовые утилиты Spring, которые могут получить доступ к Cassandra (или Thrift), то ответ будет отрицательным, по крайней мере, в том, что касается Spring 3.0.Но это должно быть довольно просто написать, если у вас установлен интерфейс DAO и все остальные уровни вашего приложения.

AFAIK нет «публичного» руководства или примера, охватывающего Spring (3.0) в сочетании с Cassandra.Так что, возможно, вы могли бы посмотреть на это :)

Я бы рекомендовал начать изучать терминологию «шаблона» в Spring (например, JDBCTemplate и HibernateШаблон) и создайте что-то вроде «CassandraTemplate».

Я не думаю, что существует какая-либо доступная библиотека Cassandra-Spring.Однако вы можете использовать Spring для создания экземпляра и настройки bean-компонента, который взаимодействует с Cassandra, и внедрить его в любой другой имеющийся у вас bean-компонент, требующий постоянства.Таким образом, вы сможете воспользоваться преимуществами Inversion Of Control и всеми возможностями, которые предлагает Spring ApplicationContext.Таким образом, вы можете отделить код, который использует хранилище данных Cassandra, от вашей бизнес-логики и использовать Spring.

Итак, ваш компонент, который общается с Кассандрой, будет [@Repository][1] стереотип, напримерэто репозиторий, похожий на репозиторий, который взаимодействует, например, с источником данных JDBC.

Я участвую в проекте, использующем Spring с Cassandra, под названием Easy Cassandra.Образец представлен здесь:

https://weblogs.java.net/blog/otaviojava/archive/2013/08/25/run-cassandra-spring-data

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top