j2ee + Android موفق

چند وقت بود که درگیر یک پروژه اندروید و j2ee بودم

تصاویر این نرم افزار را میتونید در لینک های زیر مشاهده کنید.

کارفرما که فروشنده های شرکت سن ایچ بودن از سرعت سیستم و اینترفیس سیستم خیلی راضی بود.

مشاهده سیستم پردازش ابری انبار

مشاهده سیستم پردازش ابری فروش

اگه پست های قبلی وبلاگ رو دنبال کنین میتونین با تلاش بیشتر به این خروجی برسید

با تشکر از برنامه نویس های زیر که از کشور های مختلف من به من کمک میکردن :

1.کوی (ویتنام)

2.کوشیک کومار (هندوستان)

3.راوی تامادا (هندوستان)

4.جوزف برناب باگنز (فیلیپین)

5.مارک سرانو (آمریکا)

6.روی کلارسون (آمریکا)

از دوستان و همکارانی که از من انتقاد کردن ممنونم چون این انتقادات باعث شد تا مطابق با استانداردهای جهانی کد بزنم.

به دلیل حفظ امانتداری از دادن توضیحات بیشتر معذورم.

گزارش تعداد کالاهای دارای سری ساخت انبار به انبار شده بین شعب

فرض کنید یک اپلیکیشن ساده تحت وب, همانند عکس داریم که با php نوشته شده است و قصد داریم این اپلیکیشن را با jee پیاده سازی کنیم خروجی جاوا در عکس مشاهده میشود.

این دو تا اپلیکیشن از لحاظ UI تفاوتی ندارند منتها در پشت صحنه, نحوه ایجاد کانکشن و نحوه ارسال دیتا به کلاینت فرق میکند و به همین دلیل است که اپلیکیشن جاوا عملکرد بهتری دارد.

این برنامه بنا به درخواست یک شرکت تولیدی ایجاد شده است.

چگونه با استفاده از اسپرینگ به دیتا سورس های مختلف کانکت بشیم

در اکثر سازمانها که وارد می شویم باید دیتا را از بانک های اطلاعاتی مختلف استخراج کنیم و در برنامه جدیدی که ایجاد می کنیم از آنها استفاده کنیم تا دوباره مجبور نشویم موجودیت های قبلی را دوباره تعریف کنیم .

برای دریافت دیتا از منابع مختلف راه حل های زیر وجود دارد :

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) می باشد را بصورت رایگان دریافت کنید.

دریافت مستندات کد نویسی مبتنی بر j2ee

جهت دریافت مستندات کد نویسی مبتنی بر j2ee بر روی لینک زیر کلیک کنید : دریافت مستندات + عکس


و برای دیافت کد های مربوط به این پروژه از لینک زیر میتوانید استفاده کنید : دریافت سورس کد



تست کردن اسپرینگ وب اپلیکیشن با @WebAppConfiguration

یکی از دوستان زحمت کشیدن و ایمیل زدن که مثالی که تویه پست قبل زدی درست نیست

یعنی واسه تست کردن وب اپلیکیشن باید @WebAppConfiguration را
به ابتدای متدهای
JUnit اضافه کرد. یعنی اینجوری نیست
که نشه وب اپلیکیشن رو به خاطر
context ای که داره
نشه تویه دسک تاپ تستش کرد.

برای دریافت اطلاعات بیشتر به ContextManagement در لینک زیر بروید :

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/testing.html#testing-introduction

دانلود سورس کد

نحوه استفاده از چند تا فایل کانفیگ Spring در یک پروژه

فرض کن واسه مدیریت آبجکت های زمان اجرا دو تا فایل کانفیگ داریم .حالا چرا دو تا ؟

یکی از فایل های کانفیگ در دسکتاپ اپلیکیشن ها جواب میده و اون یکی هم شامل آبجکت های وب هستش که نمیشه تویه دسکتاپ ازش استفاده کرد. واسه همین مجبوریم جداشون کنیم تا اگه خواستیم یه قسمت از اپلیکیشن رو در محیط دسکتاپ تست کنیم به راحتی این کار رو انجام بدیم .

واسه همین باید تویه فایل کانفیگ وب بیاییم کانفیگ دسکتاپ را ایمپورت کنیم .

 

کانفیگ دسکتاپ (spring-context.xml)

کانفیگ وب (spring-mvc-servlet.xml)

نحوه استفاده از کانفیگ دسکتاپ در برنامه (MainSpringTest)

نحوه استفاده از کانفیگ وب در برنامه وب (web.xml)

 

منبع : How to load multiple Spring bean configuration file

دانلود سورس کد

download complete CRUD application using SpringMVC + Hibernate

Add, Edit, Delete, Search using Spring, Hibernate, MySQL

 

1. Setup a Dynamic Web project and convert it to maven project

2. Add the dependencies - be sure to clean install in maven to put your needed jars in the project so you won't have library issue while coding

3. Setup the database

4. Create model class - add JPA annotations

5. Create DAO components - @Repository

6. Create Service components - @Service

7. Create Controller component - @Controller

 - be sure to put BindingResult immediately after @ModelAttribute or else you will got issues

8. Create the View components - JSPs

9. Configurations

- jdbc.properties

- spring-servlet.xml

- log4j.xml

- hibernate.cfg.xml

- finally web.xml

10. Clean compile

 

Download Source Code

View output

منابع :

 چه جوری از URI در لایه کنترل استفاده کنیم

چه جوری واسه فرم ولیدیشن یه کلاس بنویسیم و چه جوری اون رو سرویس کنیم

چه جوری سطرهای گرید رو شناسایی کنیم

سوال :

چه جوری دوتا کانکشن درست کنیم