مقدمه :
اسپرینگ بوت (spring boot)، یک ماژول از فریمورک برنامهنویسی spring است، که از آن برای ایجاد applicationهای مستقل (stand-alone) و production-grade (production-grade به نرم افزار و یا حتی سخت افزارهایی گفته میشود که به صورت مکرر و فشرده میتوان از آن ها در محیطهای اداری، تجاری و یا صنعتی استفاده کرد) با حداقل میزان تلاش ممکن، استفاده میشود. اسپرینگ بوت، در بالای فریمورک core Spring توسعه یافته است.
اسپرینگ بوت (spring boot) از معماری لایهای (layered architecture) پیروی میکند که در این معماری، هر لایه مستقیماً میتواند با لایهی زیرین و یا لایهی بالایی آن (ساختار سلسله مراتبی) ارتباط برقرار کند.
قبل از درک معماری اسپرینگ بوت (spring boot)، باید در ابتدا کلاس ها و لایه های مختلف موجود در آن را بشناسیم. در Spring Boot به طور کلی چهار لایه به شرح زیر وجود دارد:
-
- لایهی ارائه (Presentation Layer)
- لایهی بیزینس (Business Layer)
- لایهی ماندگاری (Persistence Layer)
- لایهی پایگاه داده (Database Layer)
بررسی لایه های اسپرینگ بوت
-
لایهی ارائه (Presentation Layer)
لایهی ارائه یا presentation وظیفهی مدیریت درخواستهای HTTP را بر عهده دارد، این لایه، پارامتر JSON را به object ترجمه میکند و درخواست (request) را احراز هویت میکند و آن را به لایهی بیزینس انتقال میدهد. به طور خلاصه، می توان گفت این لایه از veiwها تشکیل شده، یعنی قسمت جلویی.
-
لایهی بیزینس (business)
لایهی بیزینس، به طور کل تمام منطق بیزینس (business logic) را کنترل میکند. این کنترل شامل کلاس های سرویس (service classes) میشود و از سرویسهای ارائه شده توسط لایههای دسترسی به داده (data access layers) استفاده میکند. همچنین این لایه، وظیفه ی مجوزدهی (authorization) و اعتبارسنجی (validation) را نیز بر عهده دارد.
-
لایهی ماندگاری (Persistence Layer)
لایهی ماندگاری یا Persistence Layer شامل تمام منطق ذخیره سازی (storage logic) است و objectهای بیزینس را از و به ردیف های پایگاه داده (database) ترجمه میکند.
-
لایهی پایگاه داده (Database Layer)
در لایهی پایگاه داده، عملیات CRUD (ایجاد (create)، بازیابی (retrieve)، به روز رسانی (update) و حذف (delete)) انجام میشود.
معماری جریان (flow) اسپرینگ بوت
- اکنون ما کلاسهای اعتبارسنجی (validator classes)، کلاس های مشاهده (view classes) و کلاس های کاربردی (utility classes) داریم.
-
اسپرینگ بوت (spring boot)
از تمام ماژولهای Spring-like ، Spring MVC، Spring Data و … استفاده میکند. معماری Spring Boot بسیار شبیه معماری Spring MVC است، و در یک چیز تفاوت دارد: در Spring boot نیازی به کلاس های DAO و DAOImpl نیست.
- یک لایهی دسترسی به داده ایجاد میکند و عملیات CRUD را به انجام میرساند.
- مشتری درخواستهای (request) HTTP را انجام میدهد (درخواست put یا get).
- درخواست به کنترلر (controller) میرود و کنترلر، آن درخواست را نقشه برداری و مدیریت میکند. پس از آن، در صورتی که نیاز باشد، منطق سرویس (service logic) را فراخوانی میکند.
- در لایهی سرویس (service layer)، تمام منطق بیزینس (business logic) انجام میشود. این لایه، منطق را روی دادههایی که با کلاسهای مدل (model class) به JPA نگاشت میشوند، انجام میدهد.
- اگر خطا و مشکلی رخ نداده باشد، یک صفحهی JSP به کاربر، بازگردانده خواهد شد.