اسپرینگ فریمورک
اسپرینگ فریمورک (به انگلیسی: Spring Framework) یک چارچوب نرمافزاری و مدیر وارونگی کنترل متنباز برای سکوی جاوا است.[2]
توسعهدهنده(ها) | SpringSource |
---|---|
انتشار پایدار | |
مخزن | |
نوشتهشده با | جاوا (زبان برنامهنویسی) |
سیستمعامل | چندسکویی |
بنسازه رایانش | ماشین مجازی جاوا |
گونه | Application framework |
پروانه | پروانه آپاچی ۲٫۰ |
وبگاه |
ویژگیهای اصلی این فریمورک میتواند توسط هر برنامه جاوا مورد استفاده قرار گیرد، اما دارای افزونههایی برای ساختن برنامههای کاربردی وب بر روی پلت فرم JavaEE میباشد. اگر چه این فریمورک هیچ مدل برنامهنویسی خاصی را به برنامهنویس تحمیل نمیکند، اما در میان برنامه نویسان جاوا به عنوان یک راهکار دوم، یا یک جایگزین یا حتی افزونه ای برای مدل Enterprise JavaBeans (EJB) تبدیل شدهاست.
این فریمورک توسط آقای راد جانسون (Rod Johnson) نوشته شده و برای اولین بار در سال ۲۰۰۳ ارائه شد. نسخه دوم در سال ۲۰۰۶ ارائه شده و موفق به دریافت جوایز متعدد گردید؛ و تاکنون تا نسخه ۴٫۳ از این فریمورک منتشر شدهاست.
اسپرینگ یک فریمورک سبک است که میتوان آن را فریمورک فریمورکها نامید! به این خاطر که از انواع فریمورکها شامل Struts, Hibernate, Tapestry, EJB, JSF و غیره پشتیبانی میکند. در نگاهی کلی تر اسپرینگ را به عنوان ساختاری تعریف میکنیم که در آن میتوان solutionهای مربوط به مسایل تکنیکال مختلف را پیدا کرد.
فریمورک اسپرینگ شامل چندین ماژول است از جمله IOC, AOP, DAO, Context, ORM, WEB MVC و غیره.[3]
مزایای فریمورک اسپرینگ
اسپرینگ مزایای بسیاری دارد که عبارتند از:
- قالبهای از پیش تعریف شده اسپرینگ قالبهایی (templates) برای تکنولوژیهای JDBC, Hibernate, JPA و .. فراهم میکند؛ بنابراین نیازی به نوشتن کدهای زیاد نیست. اسپرینگ گامهای پایه ای این تکنولوژیها را مخفی میکند.
- اتصال ضعیف برنامههای اسپرینگی بخاطر وجود تزریق وابستگی، loosely coupled هستند.
- تست آسان تزریق وابستگی موجب میشود تا تست برنامهها راحتتر شود. برنامههای EJB یا Struts برای اجرا نیاز به سرور دارند اما فریمورک اسپرینگ نیازی به سرور ندارد.
- سبکوزن اسپرینگ بسیار سبک است، چرا که پیادهسازی آن POJO است. اسپرینگ برنامهنویس را وادار نمیکند که از ارث بری یا پیادهسازی واسط (implement interface) استفاده کند. به همین خاطر است که به آن غیرتهاجمی (non-invasive) گفته میشود.
- توسعه سریع وجود تزریق وابستگی و نیز پشتیبانی از فریمورکهای متعدد، اسپرینگ را به یک محیط توسعه آسان و سریع برای برنامههای JavaEE تبدیل کردهاست.
- انتزاع قدرتمند اسپرینگ انتزاع بسیار قوی از ویژگیهای JavaEE مانند JMS, JDBC, JPA و JTA فراهم میآورد.
- پشتیبانی اعلانی (Declarative) اسپرینگ برای ذخیرهسازی، اعتبارسنجی، تراکنشها و فرمت بندی پشتیبانی اعلانی فراهم میکند.[3]