معرفی فریمورک Spring Boot در جاوا
با سلام خدمت همه همراهان مجله رادیب، مرادیان هستم و با مقاله ای دیگر در خدمت شما عزیزان هستم، شاید این سوال برای شما پیش آمده باشد که چگونه می توانیم با استفاده از زبان جاوا، وب اپ بسازیم، خب اگر بخواهیم با استفاده از این زبان برنامه نویسی، اپلیکیشن تحت وب بسازیم مطمئناً یکی از بهترین انتخاب هاا Spring و یا Spring Boot خواهد بود. در این مطلب قصد دارم spring boot را معرفی کنم. پس تا انتهای این مطلب با ما همراه باشید. Spring یک فریمورک محبوب برای تولید برنامههای تجاری و تحت وب است که با بزرگ شدن این فریمورک یک نسخه از این فریمورک با پیکربندی های خاصی برای ساخت اپلیکیشن های تحت وب ساخته شد که نام آن spring boot گذاشته شد.
Spring Boot چیست؟
برای ارائه تعریفی از Spring Boot(اسپرینگ بوت) ابتدا باید ببینیم Spring چیست و جهت آشنایی با Spring هم باید ابتدا یک نگاهی به زبان جاوا بیندازیم. جاوا دنیای بسیار گستردهای دارد و کارهای زیادی را میتوانیم با این زبان برنامهنویسی انجام دهیم. موضوع جالب این است که حتی بسیاری از برنامهنویسان هم فکر میکنند زبان جاوا فقط محدود به اپلیکیشنهای اندروید و یا دسکتاپ میشود و وقتی از نوشتن یک وب اپلیکیشن با جاوا حرف میزنیم، از شنیدن اینکه با این زبان میشود برنامههای تحت وب هم نوشت متعجب میشوند!
موضوع این است که ویرایشهای مختلفی برای زبان جاوا وجود دارد که هر کدام از این ویرایشها شامل ابزار، تکنولوژیها، کتابخانهها و فریمورکهایی میباشند که امکان پیادهسازی و توسعه نوع خاصی از اپلیکیشنها را به ما میدهند. یکی از این ویرایشها Java EE است که مخفف Enterprise Edition میباشد. در این ویرایش امکان پیادهسازی Web Application یا همان اپلیکیشنهای تحت وب را داشته و همانطور که از نام این ویرایش پیداست هدف آن استفاده در پروژههای Enterprise میباشد.
یکی از علتهای اینکه خیلی کم در مورد استفاده از جاوا، در سمت وب میشنویم دقیقا همین است که از جاوا برای پیاده سازی پروژههای کوچک و یا متوسط استفاده نمیشود و اصلا گزینه مناسبی برای چنین پروژههایی نمیباشد. به عنوان مثال شما هیچوقت نمیبینید یک وبلاگ و یا یک سیستم محتوامحور معمولی و یا پروژههایی در این سطح با جاوا پیادهسازی شوند. ولی از طرفی هم در ایران و هم در دنیا در پروژههای بزرگ و تجاری و سازمانی بسیار استفاده میشود. در پروژههایی مثل سیستمهای بانکی، سیستم اتوماسیون یک سازمان بزرگ، بسیاری از پروژههای دولتی و خصوصی در سطح ملی، سیستمهای مدیریت منابع سازمانی، سیستمهای رزرواسیون هواپیماییهای بزرگ کشور و پروژههایی در این سطح بسیار دیده میشود که از جاوا استفاده شده و از آنجایی که تعداد پروژههای در این سطح بسیار کمتر از پروژههای سطح کوچکتر میباشد، کمتر به سیستمی بر میخوریم که با زبان جاوا پیادهسازی شده باشد.
خب حالا بپردازیم به Spring ! همه ما میدانیم که برای اکثر زبانهای برنامهنویسی سطح بالا و همچنین تحت وب فریمورکهایی وجود دارد. به عنوان مثال محبوبترین فریمورک زبان PHP فریمورک لاراول میباشد؛ و یا برای زبان پایتون فریمورک جنگو را داریم. برای جاوا هم فریمورکهای بسیار زیادی وجود دارد که میتوانیم بگوییم محبوبترین و همچنین قدرتمندترین فریمورک جاوا Spring میباشد(البته بهتر است به این نکته هم اشاره کنیم که Spring خودش از چندین فریمورک تشکیل شده است و دنیای گستردهای دارد).
خب حالا که فهمیدیم Spring چیست باید بریم سراغ Spring Boot. ما هنگام استفاده از Spring درگیر مسائلی زیادی مثل کانفیگهایی میشویم که ممکن است به علت گرفتن تمرکز برنامهنویس و یا توسعهدهنده از سرعت پیادهسازی و توسعه اپلیکیشن بکاهد و کار برنامهنویس را نیز سختتر کند. در این میان Spring Boot حکم یک Initializer را برای فریمورک Spring بازی میکند که خیلی از کارها را خودش انجام داده و نیاز به درگیر شدن برنامهنویس با بسیاری از کانفیگها نیست و البته این روزها Spring Boot خودش به عنوان یک فریمورک شناخته میشود.
هنگامی که پروژهمان را با استفاده از Spring Boot ایجاد میکنیم، برنامهنویس این امکان را دارد که بیشترین تمرکز را بر روی کار پیادهسازی داشته و با امکانات و ابزارهای فوقالعادهای که در اختیارش قرار دارد، با بیشترین قدرت و سرعت پیشروی داشته باشد!
Spring Boot در واقع یک فریمورک برنامه نویسی و توسعه نرمافزار با زبان جاوا است که میتوان توسط آن برنامههای تحت وب و میکرو سرویس تولید کرد. معمولاً برنامههایی که از spring استفاده میکنند نیاز دارند که برخی پیکربندی ها برای spring انجام شود. ولی در برنامههای Spring Boot نیازی به این کار نیست و در نتیجه زمان تولید برنامه کاهش می یابد.
آیا برای یادگیری Spring Boot باید دانش Spring داشته باشیم؟
با اینکه خیلیها عقیده دارند که برای یادگیری Spring Boot نیازی به Spring نیست ولی اگر یک دید کلی نسبت به خود Spring داشته باشیم میتواند کمک بسیار خوبی برای یادگیری Spring Boot باشد.
ویژگیهای Spring Boot
در این قسمت چند تا از ویژگی های Spring Boot را معرفی می کنیم.
- Autoconfiguration این قابلیت باعث میشود که حجم کد نویسی کم شود به خاطر اینکه پیکربندی به صورت اتوماتیک انجام میشود و لازم نیست که برای پیکربندی کلی کد خستهکننده بنویسیم.
- Starter POM: همانطور که میدانید pom نام فایلی است که وابستگیهای برنامه را در سیستم maven در خود نگهداری میکند. این قابلیت این امکان را به برنامه میدهد که کتابخانههایی را که برنامه به آنها وابسته است را پیدا کرده و به برنامه اضافه کند. همچنین با استفاده از این قابلیت کتابخانهها و وابستگیها بروز نگهداشته میشوند و کتابخانههای اضافی حذف خواهند شد.
- Actuator این قابلیت این امکان را به کاربر میدهد که بتواند آماری از بخشهای مختلف برنامه و پیکربندی ها داشته باشد. همچنین امکان مشاهده متغیرهای محیطی (environment variables), آرگومان های خط فرمان و پیکربندی های سیستمی و همچنین استفاده از منابع رم و CPU و درخواست های http و بسیاری از امکانات دیگر را به ما میدهد.
- Spring Boot CLI: این امکان یک ویژگی اختیاری است که باید جدا نصب شود. این امکان یک خط فرمان برای Spring boot ایجاد میکند که میتوانیم با استفاده از زبان groovy دستورات را نوشته و اجرا کنیم.
دقت داشته باشید که از دلایلی که باعث میشود Spring Boot محبوب شود این است که این تکنولوژی برای پیادهسازی معماری microservice بسیار عالی عمل میکند و Actuator امکانات آماری مختلفی را در اختیار کاربران قرار میدهد که میتوان به کمک آن microservice ها را مدیریت کرد.
معایب
با همه امکانات خوبی که برای Spring Boot گفتیم یک سری معایب نیز در این تکنولوژی وجود دارد که آنها را در ادامه شرح میدهیم.
- برخی اوقات ممکن است که Starter pom کتابخانههایی را اضافه کند که ما از آنها در برنامه استفاده نمیکنیم و این کار باعث میشود که حجم برنام بالا برود.
- هرچقدر که برنامه بزرگتر شود زمان شروع برنامه بیشتر می شود. این مشکل در محیط های بدون سرور ممکن است که مسأله ساز شود.
- برنامه توسط مکانیزم Reflection با وابستگیها ارتباط برقرار می کند. حال هرچه وابستگیها بیشتر شود استفاده از Reflection هم بیشتر میشود که این امر باعث استفاده زیاد از حافظه میشود و ممکن است که خطای out of memory را تجربه کنیم.
منبع: مجله رادیب
کسانی که این مقاله را خوانده اند مقالات زیر را هم دنبال کرده اند