آموزش Java Spring
در معرفی Java Spring ، باید اینگونه شرح داد که اسپرینگ (Spring) یکی از پلتفرم های جاواست (Java) که
برای آماده سازی پشتیبانی جامع زیرساختارها، برای توسعه سریع و آسان برنامه های قدرتمند جاوا (Java) استفاده می شود. (Java
Sprin) معمول ترین قالب برای توسعه برنامه های Enterprise Java است. از جمله دلایل محبوبیت Java Spring می توان به ایجاد
کدهایی با قابلیت استفاده مجدد، قابلیت تست آسان و کدهایی با عملکرد بالا اشاره کرد.
Java Spring در متون مختلف، معانی متفاوت دارد. از عبارت Java Spring می توان برای ارجاع به پروژه
های نوشته شده در خود ساختار Java Spring استفاده کرد. اغلب، هدف افراد از بکارگیری عبارت Java Spring، مجموعه کامل پروژه
است؛ و این مستندسازی مرجع، بر اساس و پایه پروژه که همان Java Spring است، متمرکز است.
Java Spring دارای چندین ماژول است و برنامه ها می توانند ماژول های مورد نیاز خود را از میان
ماژول های Java Spring انتخاب کنند. کدهای Java Spring سبک و خوانا هستند، و ویژگی های پایه آنها را می توان در توسعه هر
برنامه ای از جاوا (Java) بکار گرفت. Java Spring بدنبال توسعه آسانتر J2EE ، برای بکارگیری و ارتقا پروژه های برنامه
نویسی با استفاده از مدل برنامه نویسی POJO است. علاوه بر این، Java Spring پشتیبانی ساختاری از امکانات مختلفی همچون
Messaging (پیام رسانی)، Transactional Data and Persistence (داده های تبادلی و نگهداری این داده ها)، و همچنین پشتیبانی
از ساختار وب را مهیا می سازد.
در این مجموعه، مقالاتی مفید از
Java Springرا در اختیار شما عزیزان قرار داده، تا بتوانید هر چه بیشتر با امکانات و زمینه های
کاربردی Java Spring آشنا شوید.
برای مشاهده دوره مرتبط با این مجموعه مقالات بر روی عبارت Java Spring کلیک کنید.
مباحث پیشرفته Spring
Dependecy Injection که گاهی اوقات Wiring هم نامیده میشود ، به ما کمک میکند تا کلاس ها را به هم مرتبط کرده و در عین حال کاری میکند تا آنها مستقل از هم عمل کنند .
همانطور که میدانید ، کلاسهای درونی در جاوا ( Java inner classes ) کلاس هایی هستند که درون محدوده کد یک کلاس دیگر تعریف می شوند . به همین صورت inner beans نیز اشیای bean ی هستند که در درون محدوده کد یک bean دیگر تعریف می شوند .
در درس های قبل آموختید که چگونه انواع داده ای اصلی مثل int ، string و ... را با استفاده از خاصیت Value و یا رفرش از یک شی ( object Refrence ) به وسیله خاصیت ref در تگ <property> موجود در فایل پیکربندی اطلاعات ( configuration file ) ، تنظیم و ارسال نمایید . هردوی موارد اشاره شده ، برای ارسال یک مقدار تکی به شی bean استفاده می شوند .
در درس های قبلی ، با نحوه تعریف اشیای beans به وسیله المنت <bean> و همچنین تزریق <bean> به درون فایل های XML پیکربندی اطلاعات برنامه ( Configuration File ) به وسیله تگ های <property> و <constructor-org> آشنا شوید . Spring Container می تواند ارتباطات بین اشیای Beans یک برنامه را با استفاده از عمل اتصال خودکار (antowire) و بدون کمک از المنت های <property> و <constructor-org> انجام دهد . عمل Autowire باعث کاهش حجم کدنویسی فایل XML پیکربندی اطلاعات ، مخصوصا در برنامه های بزرگ مبتنی بر Spring می شود .
از نسخه 2.5 چهارچوب کاری Spring ، این امکان به وجود آمد تا dependency injection را به وسیله annotations انجام دهیم . بنابراین به جای استفاده از XML برای تشریح یک bean wiring ، می توانید تنظیمات پیکربندی را به خود کلاس شی انتقال دهید . در این حالت annotations را در کلاس مربوطه ، متدها و یا فیلدهای تعریف داده به کار میبریم .
در درس های قبل ، به نحوه تنظیم Spring beans به وسیله فایل های پیکربندی مبتنی بر XML آشنا شدید . اگر با نوشتن کدهای پیکربندی اطلاعات به زبان XML مشکلی ندارید ، به نظر من نیازی نیست تا روش نوشتن این فایل را به زبان جاوا را نیزیاد بگیرید . زیرا در هر دو روش به نتیجه یکسانی رسیده و فایل پیکربندی اطلاعات مبتنی بر XML یا مبتنی بر جاوا خروجی یکسانی دارند .
ApplicationContext ، رویدادهای مشخصی را در هنگام لود و فراخوانی Bean های برنامه اجرا می کند . برای مثال ، رویداد ContextStartedEvent هنگامی مه Context شروع به لود کرده ، اجرا شده و رویداد ContextStopedEvent در هنگام پایان لود شدن Context رخ می دهد . مدیریت رویدادها ( Event Handling ) در ApplicationContext را اجرا کند ، هربار که کلاس ApplicationEvent به ApplicationContext ارسال شود ، شی Bean از این عمل مطلع خواهد شد .
برای نوشتن یک رویداد دلخواه در Spring ، بایستی چند مرحله را انجام دهید . در این درس به صورت گام به گام همراه با سورس عملی مثال ، نحوه نوشتن یک Custom Event را آموزش داده ایم .
یکی از Component های اصلی و کلیدی چهارچوب کاری Spring ، کامپوزیت AOP یا Programming Aspect oriented است . Aspect oriented Programming باعث تفکیک شدن منطق و کدهای برنامه ( Logic ) به بخش های مجزایی به نام So-called Concern می شود .
هنگامی که در محیط های برنامه نویسی جاوا ، برای کار با پایگاه های داده از زبان قدیمی JDBC استفاده می کنیم ، کار برنامه نویسی کمی سخت می شود . در این شرایط نوشتن کدهای غیر ضروری برای مدیریت استثنا های برنامه ، باز و بسته کردن ارتباط با پایگاه داده و ... کمی دشوار است . از طرف دیگر ، چهارچوب کاری JDBC در Spring ، با رویکردی جدید انجام کلیه امور مرتبط با پایگاه داده از کارهای معمولی تا سطح بالا را برعهده گرفته است . برای مثال Spring JDBC ، تمهیدات لازم جهت باز کردن ارتباط با پایگاه داده ، آماده نمودن دستورات SQL جهت اجرا ، پردازش استثناها و مدیریت تراکنش ها و در نهایت بستن ارتباط را فراهم کرده است .
یک تراکنش در پایگاه داده ( database transaction ) مجموعه ای از عملیات های داده ای متوالی ، است که بایستی به عنوان یک واحد کاری رفتار کند . این مجموعه عملیات ها یا بایستی به صورت کامل با هم انجام شوند و یا اینکه کلا اثری برسیستم نداشته باشند . به عبارت دیگر تراکنش یا باید به طور کامل و موفقیت آمیز انجام شده و یا در کل لغو گردد .
فریم ورک Spring MVC ، معماری model-view-Controller و کامپوزیت های آماده آن را برای ایجاد نرم افزارهای تحت وب انعطاف پذیر و دارای بخش های مجزا فراهم میکند . الگوی MVC باعث جدا شدن و مستقل عمل کردن اجزای اصلی یک application ( UI logic و business و input logic ) از یکدیگر شده ، در حالی که ارتباط بین آنها به وسیله روش های مختلفی فراهم می شود .
استفاده از Log4J در پروژه ها و نرم افزارهای Spring بسیار ساده است . همانطور که می دانید Log4J یک سیستم log کردن اطلاعات در Java است . مثالی که در این درس ارائه خواهیم داد ، مراحل ساده استفاده و ترکیب Log4J در پروژه های Spring را نشان می دهد . در اینجا فرض براین است که Log4J برروی سیستم شما نصب است . در غیر اینصورت به آدرس http://logging.apache.org رفته و فایل های نصب Log4J را دانلود نمایید . سپس آنها را در یک پوشه extract کرده و فایل اصلی log4j-x.y.2.jar را نصب نمایید .