در اکثر سازمانها که وارد می شویم باید دیتا را از بانک های
اطلاعاتی مختلف استخراج کنیم و در برنامه جدیدی که ایجاد می کنیم از آنها استفاده
کنیم تا دوباره مجبور نشویم موجودیت های قبلی را دوباره تعریف کنیم .
برای دریافت دیتا از منابع مختلف راه حل های زیر وجود دارد :
1.دریافت دیتا از وب سرویس
2.اتصال مستقیم به بانک های مختلف از داخل اپلیکیشن جدید
در این پست قصد دارم نحوه استفاده از روش دوم را با تصاویری
که از کدهای مربوطه گرفته شده را بیان کنم . فرض کنید قصد داریم اپلیکیشنی مطابق
تصویر زیر ایجاد کنیم .

- اگر بخواهیم
بدون استفاده از اسپرینگ کار کنیم باید با استفاده از jdbc به بانک های
مختلف وصل بشیم و نتایجی که از این لایه (بیزینس) برگردانده میشود را در لایه
کنترل به لایه ویو (jsp) منتقل کنیم. تصویر
- کدهایی که در
لینک قبل می بینید خوانایی لازم را ندارند و کانکشن استرینگ برنامه در داخل خود
برنامه گنجانده شده است و این اصلاً خوب نیست چون اگه تنظیمات بانک اطلاعاتی عوض
شد نمیتوانیم بصورت پارامتریک این تغییرات را به اپلیکشن منتقل کنیم.
- برای حل این مشکل میتونیم یه فایل کانفیگ درست میکنیم که
کانکشن استرینگ های مختلف داخل این فایل کانفیگ قرار دارند و یا میتونیم طبق
استانداردهای کد نویسی اسپرینگ از فایل jdbc.properties استفاده
کنیم. تصویر
- فایل کانتکست فایلی است که در آن آبجکت های مورد نیاز
برنامه همانند آبجکت دیتا سورس , آبجکت مدیر تراکنش ها قرار میگرند . بازای هر
بانک اطلاعاتی باید آبجکت دیتا سورس و آبجکت مدیر تراکنش های مرتبط با آن را ایجاد
کنیم. تصویر
- ساختار پروژه ای که در حال کار بر روی آن هستیم با
استفاده از Maven ایجاد شده است و از فایل pom.xml برای مدیریت آن
استفاده می کنیم. در این مثال در داخل پکیج org برنامه
ای است که با استفاده از هایبرنیت ایجاد شده است و در پست های قبلی راجع به آن
توضیح داده شد. در داخل پکیج com برنامه ای است که از jdbc استفاده می
کند. تصویر
- لایه model شامل POJO های ساده می
باشد که هیچگونه Annotation در آن استفاده نشده است. تصویر
- لایه dao برنامه از یک اینرفیس تشکیل شده است که در آن امضا
متدهایی که قصد پیاده سازی آن را داریم آورده میشود. تصویر
- ما قصد داریم اینرفیس dao اپلیکیشن
خود را با استفاده از jdbc پیاده سازی کنیم . این قسمت مهمترین قسمت
برنامه است و فریم ورک اسپرینگ کمک زیادی برای پیاده سازی این کلاس به ما میکند. دقت
کنید که چگونه آبجکت دیتا سورس را با استفاده از @Autowired و @Qualifire مقداردهی می کنیم و پس از آن
چگونه JdbcTemplate را مقداردهی می کنیم. تصویر
- آبجکت JdbcTemplate توسط فریم ورک اسپرینگ معرفی شده است و به
ما این امکان را میدهد تا با کد خواناتری از بانک اطلاعاتی پرس و جو کنیم. تصویر
-برای استفاده از روش
های دیگر پرس و جو با استفاده از jdbcTemplate از سایت Mkyong.com میتوانید استاده کنید.
- هدف از ایجاد لایه bo مدیریت
تراکنش می باشد که از یک اینرفیس تشکیل شده است که دقیقاً یک کپی از اینترفیس لایه
dao می باشد. تصویر
- دقت شود که در هنگام پیاده سازی متدهای لایه bo , قبل از هر
متد از @Transactional بطور صحیح استفاده شود. تصویر
- در لایه کنترلر مشخص می کنیم با ارسال یک url جدید به سرور: چه
پردازشهایی باید در سرور انجام شوند؟ چه آبجکتهایی به لایه ویو منتقل شوند؟ چه چیزی
بعنوان خروجی به کاربر نمایش داده شود؟ تصویر
- در لایه ویو با استفاده از${Object} به آبجکتها دسترسی داریم. تصویر
- با استفاده از ابزارهای تست testing و
نوشتن متدهای تستی میتوانیم قسمتهای مختلف برنامه را تست کنیم. تصویر
لایه بندی های مختلف پروژه این امکان را به ما میدهند تا در
صورت نیاز به ایجاد تغییرات در برنامه , این تغییرات فقط در یک لایه انجام شوند تا
از انتشار تغییرات در همه سطوح برنامه جلوگیری شود و هزینه نگهداری برنامه کاهش یابد.
حجم سورس کد برنامه 218 کیلو بایت است که برای استفاده از
آن باید idea و maven را در کامپیوتر
خود نصب کرده باشید. دریافت سورس کد.
فکر کنم تا به حال درباره لایه بیزینس توضیحات کاملی داده
شده است . در پست های بعدی سعی میکنم بیشتر درباره لایه ویو بنویسم.
لطفاً کتاب Pro Spring MVC with Web Flow را یک منبع کامل درباره Spring MVC می باشد و مطابق با آخرین نسخه (در حال حاضر نسخه 3.2) می باشد را
بصورت رایگان دریافت کنید.