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

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

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

Ответы

Ответ 1

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

Хотя я лично не использовал hector с spring, мы получили несколько вкладов, которые добавили поддержку spring. См. Например 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 p >

Ответ 2

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

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

Ответ 3

Если вы уже знакомы с фреймворками 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 и все остальные уровни вашего приложения.

Ответ 4

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

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