مهدی عادلی فر
بنیانگذار توسینسو و برنامه نویس

Spring Boot چیست؟ معرفی فریمورک برنامه نویسی وب در جاوا

اگر بخواهیم با استفاده از زبان جاوا اپلیکیشن تحت وب بسازیم مطمئناً یکی از بهترین انتخابات spring و یا spring boot خواهد بود. در این مطلب می‌خواهیم spring boot را معرفی کنیم. Spring یک فریمورک محبوب برای تولید برنامه‌های تجاری و تحت وب است که با بزرگ شدن این فریمورک یک نسخه از این فریمورک با پیکربندی های خاصی برای ساخت اپلیکیشن های تحت وب ساخته شد که نام آن spring boot گذاشته شد. 

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

Spring Boot چیست؟

یک فریمورک برنامه نویسی و توسعه نرم‌افزار با زبان جاوا است که می‌توان توسط آن برنامه‌های تحت وب و میکروسرویس تولید کرد. معمولاً برنامه‌هایی که از spring استفاده می‌کنند نیاز دارند که برخی پیکربندی ها برای spring انجام شود. ولی در برنامه‌های Spring Boot نیازی به این کار نیست و در نتیجه زمان تولید برنامه کاهش می یابد. 

Spring Boot با Spring چه تفاوتی دارد؟

همانطور که گفته شد Spring Boot بر پایه Spring ساخته شده است و این دو فریمورک با هم کار می کنند. هدف از توسعه Spring این بود که یک فریمورک انعطاف پذیر ساخته شود تا با فریمورک های مختلف سازگاری داشته باشد و و بتواند با آن‌ها کار کند. وقتی که یک فریمورک بر پایه Spring ساخته می‌شود مسأله ای که پیش می‌آید پیکربندی درست آن است اما تمرکز اصلی Spring Boot بر روی این است که چگونه این پیکربندی را کم کرده و یا از بین ببرد تا برنامه نویسان بتوانند بر روی بخش‌های اصلی برنامه تمرکز کنند. به همین خاطر Spring Boot یک مکانیزم auto configuration ارائه داده است که با توجه به فایل‌های jar که به برنامه اضافه شده است عمل پیکربندی انجام می شود. همچنین 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 را تجربه کنیم.

با وب سایت Tosinso همراه باشید.


مهدی عادلی فر
مهدی عادلی فر

بنیانگذار توسینسو و برنامه نویس

مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.

نظرات