معرفی فریم ورک اسپرینگ Spring

Spring

فریم ورک اسپرینگ Spring به دلیل وجود یکسری مشکلات در مسیر بلوغ زبان جاوا به وجود آمد. قبل از ظهور شرکت EJB، برنامه نویسان جاوا برای توسعه وب اپلیکیشن از JavaBeans استفاده می کردند. اگرچه JavaBeans در طراحی و توسعه رابط کاربری (UI) کمک دست برنامه نویسان جاوا بود اما مشکلاتی نظیر عدم امنیت و ضعف در مدیریت تراکنش ها محدودیت هایی را برای توسعه دهندگان ایجاد می کرد.

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

معرفی فریم ورک Spring

همانطور که قبلاً اشاره شد، برنامه‌نویسان جاوا در توسعه اپلیکیشن‌های سازمانی امن و قدرتمند با مشکلات زیادی مواجه بودند. EJB به عنوان یک راه‌حل معرفی شد. این تکنولوژی با توسعه کامپوننت‌های جاوا فرآیند طراحی اپلیکیشن‌های سازمانی را برای برنامه‌نویسان ساده‌تر کرد.

البته توسعه اپلیکیشن‌های سازمانی با EJB کار ساده‌ای نبود، زیرا برنامه‌نویس باید عملیات مختلفی نظیر ساخت Home، رابط‌های ریموت و متدهای Lifecycle callback را پیاده‌سازی می‌کرد که بسیار پیچیده و زمان‌بر بود.

در همان زمان، فریم‌ورک اسپرینگ به عنوان راه‌حلی برای رفع مشکلات و پیچیدگی‌های EJB معرفی شد. این فریم‌ورک با ارائه تکنیک‌های جدیدی نظیر برنامه‌نویسی جنبه‌گرا (AOP)، آبجکت‌های ساده و قدیمی جاوا (POJO) و تزریق وابستگی (DI)، توسعه اپلیکیشن‌های سازمانی را آسان‌تر کرده و به نوعی تمامی موانع موجود در EJB را برطرف ساخته است.

تکامل فریم ورک اسپرینگ

فریم ورک Spring اولین بار در سال ۲۰۰۴ منتشر شد. سپس نسخه ۲٫۰ که در آن استفاده از XML namespace و AspectJ پشتیبانی می شد به جامعه برنامه نویسان معرفی گردید. پس از آن نسخه Spring 2.5 همراه با قابلیت پشتیبانی از پیکربندی تفسیر محور (Annotation-Driven) و ورژن ۳٫۰ با پیکربندی مبتنی بر جاوا (Java-based @Configuration) در دسترس برنامه نویسان قرار گرفتند. نسل چهارم این فریم ورک به نام Spring 4.0 نیز از تکنولوژی های جاوا ۸ و جاوا EE7 پشتیبانی می کند.

اگرچه امکان استفاده از اسپرینگ با ورژن های قدیمی جاوا همچنان در دسترس توسعه دهندگان قرار دارد اما حداقل تکنولوژی مورد نیاز برای کار با آن Java SE 6 است. علاوه بر این نسخه ۴٫۰ فریم ورک اسپرینگ از امکانات Java EE7 نظیر سرویس های پیامرسان (JMS2.0) و JPA 2.1 و سرولت (Servlet3.1) و JCache و Bean Validation نیز پشتیبانی می کند.

در آخرین نسخه از این فریم ورک به نام Spring 5.0 بهینه سازی های زیادی بر روی آن اعمال شده است، برای مثال کمپانی تولید کننده اقدام به حذف برخی از کلاس ها و متدها کرده و بروز رسانی هایی در بخش کانتینرها انجام داده است.

معماری فریم ورک Spring

فریم ورک Spring دارای ۷ ماژول است که با نام های :

  • Core
  • AOP
  • Web MVC
  • DAO
  • ORM
  • Context
  • Web flow

در درون این فریم ورک تعبیه شده اند و با ایجاد پلتفرم های مختلف امکان توسعه اپلیکیشن های سازمانی را در اختیار برنامه نویسان قرار می دهد. برای مثال می توان از ماژول Spring Web MVC برای توسعه اپلیکیشن های مبتنی بر معماری MVC استفاده کرد.

مزایای فریم ورک Spring

۱- استفاده از POJO :

همانطور که پیش تر به آن اشاره کردیم با استفاده از فریم ورک Spring می توان اپلیکیشن های سازمانی باکیفیتی تولید کرد؛ این موضوع با اتکا به Object های قدیمی و ساده جاوا (Plain Old Java Objects) یا همان POJO امکان پذیر است.

استفاده از POJO در توسعه اپلیکیشن بدین معنی است که دیگر نیازی به یک کانتینر سازمانی نظیر سرور اپلیکیشن نخواهید داشت. علاوه بر این امکان استفاده از کانتیرهای قدرتمند Servlet نظیر تامکت را نیز در دسترس برنامه نویسان قرار داده و آنها را از شر قراردادهای EJB خلاص می کند. این موضوع همچنین باعث هر چه سبک تر شدن این فریم ورک می شود.

۲- انعطاف پذیری پیکر بندی :

فریم ورک Spring از پیکربندی XML و جاوا Annotation استفاده می کند؛ به همین دلیل انعطاف پذیری بیشتری برای توسعه اپلیکیشن های سازمانی در اختیار برنامه نویسان قرار می دهد.

۳- عدم نیاز به سرور :

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

۴- استفاده از Spring AOP :

ماژول AOP در این فریم ورک مزیت های بسیاری برای توسعه دهندگان به ارمغان می آورد، برای مثال امکان استفاده از یونیت های Compilation یا کلاس لودرهای مختلف را در اختیار آنها قرار می دهد. علاوه بر این با استفاده از کانتینر loC عملیات تزریق وابستگی را انجام می دهد که باعث پیکربندی نرمال aspect ها می شود.

۵- عدم نیاز به یادگیری دیگر منابع :

یکی از مزیت های فریم ورک Spring در توسعه اپلیکیشن های سازمانی این است که می توانید تمام کارها را با آن انجام دهید. برای مثال این فریم ورک از تکنولوژی های بسیاری نظیر تایمرهای JDK، فریم ورک های ORM و جاوا EE استفاده می کند. بنابراین توسعه دهندگان برای تولید اپلیکیشن مجبور نخواهند بود تا تمام فریم ورک ها و تکنولوژی های دیگر را جداگانه یاد بگیرند.

۶- ماژول های فراوان :

فریم ورک اسپرینگ قابلیت ماژولار دارد، بدین معنی که امکان انتخاب کلاس یا پکیج را در اختیار برنامه نویسان قرار می دهد. تعداد پکیج و کلاس ها در این فریم ورک آنقدری هست که برنامه نویس بدون هیچ مشکلی قادر به انتخاب می باشد.

۷- تست گیری راحت:

یکی از مزیت های تزریق وابستگی فریم ورک Spring این است که امکان آزمایش و تست پروژه به راحتی امکان پذیر است. در حقیقت تزریق دیتای آزمایشی از طریق javabean POJO به راحتی در دسترس برنامه نویسان قرار می گیرد.

۸- کنترل وارونگی و API :

فریم ورک Spring با هدف تفسیر exception ها در رابط برنامه سازی JBDC، وارونگی و API را کنترل می کند.

معایب فریم ورک اسپرینگ

۱- پیچیدگی :

یکی از ایراداتی که به این فریم ورک وارد می شود پیچیدگی بیش از حد آن است. به عبارت دیگر Spring دارای ۲۴۰۰ کلاس و ۴۹ ابزار کاربردی دیگر است که در واقع تمرکز برنامه نویسان برای توسعه اپلیکیشن را به هم می زند.

۲- یادگیری دشوار :

اگر به تازگی وارد عرصه برنامه نویسی شده باشید، یادگیری فریم ورک Spring برایتان دشوار است. در واقع به علت متدهای جدید برنامه نویسی و جزییات بسیار، برنامه نویسان مبتدی هنگام یادگیری این فریم ورک با مشکلاتی روبرو خواهند شد.

۳- ازدیاد بیش از حد مکانیزم های موازی :

اگرچه این موضوع به عنوان یک مزیت در نظر گرفته می شود چرا که به برنامه نویسان قدرت انتخاب بیشتری می دهد، اما در برخی اوقات نیز باعث گیج شدن آنها می شود. به عبارت دیگر برنامه نویس باید بداند که در یک موقعیت خاص از کدام متد یا کلاس استفاده کند.

۴- XML های بسیار :

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

۵- کمبود منابع کمکی و راهنما :

برای برخی از موضوعات مهم نظیر حملات Cross-Site Scripting یا ارسال درخواست های تقلبی به سایت مثل حملات DDOS، هیچ منابع کمکی در دسترس توسعه دهندگان قرار ندارد. علاوه بر این چند حفره امنیتی نیز در آن مشاهده می شود!

آخرین نوشته ها

تماس با ما

 کرج، شاهین ویلا، بلوار امام خمینی ، خیابان نهم شرقی ، برج شاهین ،طبقه اول واحد2

 91014618

  info@shopingserver.net

با تلفن ثابت بدون پیش شماره قابل شماره گیری هست و در صورتی که با تلفن همراه قصد تماس گرفتن دارید از پیش شماره استان خود را اول شماره وارد نمایید.

mohammad hashemi

mohammad hashemi

مطالب مرتبط