هل هناك أي أمثلة/برامج تعليمية لاستخدام Spring 3.0 مع كاساندرا كوجود خلفي؟ [مغلق

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

سؤال

كما كتبت في العنوان ، أحاول أن أتعلم Spring 3.0 (أعرف بالفعل Django و Pylons وعدد قليل من أطر MVC أبسط) وأحاول استخدام Cassandra كخلف لتطبيق الويب الخاص بي.

هل هناك أي أمثلة في العالم الحقيقي على القيام بذلك؟ أو ربما بعض البرامج التعليمية؟ أعلم عن وجود توثيق كلتا التقنيتين ، لكنني أبحث عن شيء "أسرع" للقراءة وإحضاري.

هل كانت مفيدة؟

المحلول

أنا مؤلف هيكتور https://github.com/rantav/hector, ، عميل Java الرائد لـ Cassandra ، لذا أشجعك على إلقاء نظرة على ما تقدمه.

على الرغم من أنني شخصياً لم أستخدم Hector مع 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

نصائح أخرى

إذا كنت معتادًا بالفعل على أطر MVC ، فيجب أن تدرك أن قاعدة البيانات/مخزن البيانات الذي تستخدمه في الواجهة الخلفية يجب ألا يؤثر على تطبيق MVC ككل ، أو كيف تقوم ببنية الأشياء - يجب أن تؤثر فقط على طبقة البيانات الخاصة بك وكيفية ذلك يسترجع البيانات.

مع SPRING MVC ، فإن الممارسة المقبولة هي أنك تمثل نموذج البيانات الخاص بك كسلسلة من "نموذج / فئات المجال" ، والتي عادة ما تكون مجرد pojos للاحتفاظ ببياناتك. "المجال" هنا يعني أنه مرتبط بمجال مشكلتك ؛ لذلك إذا كان لديك تطبيق يتناول العملاء الذين يطلبون الأشياء التي تريد الحصول عليها Customer الفصل ، و Order الفصل ، إلخ.

تتفاعل كل من الطبقات الثلاث لتطبيق MVC - وحدات التحكم ، وطبقة منطق الخدمة/الأعمال ، وطبقة DAO مع فئات نموذج المجال هذه. نظرًا لأن طبقة DAO مسؤولة عن استرداد هذه البيانات أو تحديثها في الواجهة الخلفية ، فهذا يعني أن الطبقة DAO هي التي تحتاج إلى معرفة كيفية جلبك Customer أو Order الفصل من كاساندرا ، كيفية تحديث بعض Customer الحقول ، إلخ.

لذلك لا يوجد شيء خاص حول كيفية بناء تطبيق Spring MVC نفسه عند استخدام Cassandra أو أي قاعدة بيانات أخرى "NOSQL". ستحتاج فقط إلى توفير تطبيقات مختلفة لفصول DAO التي يمكنها التواصل مع Cassandra.

إذا كنت تسأل عما إذا كانت هناك أي مرافق زنبركية تم إنشاؤها مسبقًا يمكنها الوصول إلى كاساندرا (أو التوفير) ، فإن الإجابة هي لا ، على الأقل بقدر ما يوجد في فصل الربيع 3.0. ولكن يجب أن يكون هذا الأمر بسيطًا جدًا في الكتابة بمجرد الحصول على مجموعة واجهة DAO وجميع الطبقات الأخرى لتطبيقك في مكانها.

AFAIK لا يوجد برنامج تعليمي "عام" أو مثال يغطي الربيع (3.0) بالتزامن مع كاساندرا. لذلك ربما يمكنك النظر فيه :)

أوصي أن أبدأ في النظر في مصطلحات "القالب" في الربيع (على سبيل المثال jdbctemplate و HibernateTemplate) وإنشاء شيء مثل "CassandRatemplate".

لا أعتقد أن هناك أي مكتبة كاساندرا-سبرينغ متاحة. ومع ذلك ، يمكنك استخدام Spring للتنظيم وتكوين الفول الذي يتحدث إلى كاساندرا ، وحقن ذلك في أي فول آخر لديك يتطلب الثبات. وبهذه الطريقة ، يمكنك السماح لها بالاستفادة من انعكاس التحكم وجميع المنشآت التي يقدمها SPRING ApplicationContext. وبهذه الطريقة ، يمكنك فصل الرمز الذي يدرك كاساندرا Datastore من منطق عملك واستخدام الربيع.

لذا ، فإن المكون الذي يتحدث إلى كاساندرا سيكون من [@Repository][1] الصورة النمطية ، على سبيل المثال ، إنه مستودع ، تمامًا مثل المستودع الذي يتحدث ، على سبيل المثال إلى بيانات بيانات JDBC.

أنا متورط في مشروع باستخدام الربيع مع كاساندرا يسمى Easy Cassandra. يتم توفير عينة هنا:

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top