Я не думаю, что есть какая-нибудь библиотека cassandra-spring. Однако вы можете использовать Spring для создания и настройки bean-компонента, который общается с Cassandra, и внедрения его в любой другой bean-компонент, который требует настойчивости. Таким образом, вы можете использовать Inversion Of Control и все возможности Spring ApplicationContext. Таким образом, вы можете отделить код, который знает о хранилище данных cassandra, от вашей бизнес-логики и использовать spring.
Итак, ваш компонент, который общается с Кассандрой, будет относиться к стереотипу [@ Repository] [1]
, например это репозиторий, точно так же, как репозиторий, который общается, например, с источником данных JDBC.
Если вы уже знакомы с фреймворками 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 и все остальные уровни вашего приложения.
Насколько мне известно, не существует "общедоступного" руководства или примера, охватывающего Spring (3.0) в сочетании с Cassandra. Так что, возможно, вы могли бы изучить его :)
Я бы рекомендовал начать смотреть на "шаблон" "терминологию в Spring (например, JDBCTemplate и HibernateTemplate ) и создайте что-то вроде" CassandraTemplate ".