آن چه در این مقاله خواهید خواند:
همه چیز دربارهی فریم ورک اسپرینگ (Spring Framework):
فریم ورک اسپرینگ (Spring Framework) محبوبترین Framework توسعه برنامه، برای Java Enterprise است. میلیونها توسعهدهنده در سراسر جهان از فریم ورک اسپرینگ (Spring Framework) برای ایجاد کدهایی با عملکرد بالا، قابلیت تست آسان و قابلیت استفادهی مجدد بهره میبرند. فریم ورک اسپرینگ (Spring Framework) یک بستر نرمافزاری Open source برای زبان برنامه نویسی جاوا است که ابتدا توسط Rod Johnson نوشته شد و سپس برای اولین بار با مجوز Apache 2.0، در ژوئن 2003 منتشر شد. Spring از نظر اندازه و Transparency حجم کمی دارد و نسخهی اصلی آن حدود 2 مگابایت است.
یکی از ویژگیهای اصلی فریم ورک اسپرینگ (Spring Framework) این است که میتوان در توسعه همهی برنامههای جاوا از آن استفاده کرد، ولی برای ساخت برنامههای تحت وب در بستر Java EE، افزونههایی (Extensions) وجود دارد. از اهداف فریم ورک اسپرینگ (Spring Framework) میتوان به ایجاد سهولت استفاده از J2EE و ترویج روشهای خوب برنامهنویسی با تهیهی یک مدل برنامهنویسی مبتنی بر POJO، اشاره کرد. Spring شامل برخی از ویژگیهای خوب مانند Dependency Injection یا تزریق وابستگی و ماژولهای از پیش آماده شده مانند: Spring JDBC، Spring MVC، Spring Security، Spring AOP، Spring ORM و Spring Test است.
این ماژولها میتوانند زمان توسعه یک برنامه را بهشدت کاهش دهند. بهعنوان مثال، در روزهای اولیهی توسعه جاوا، باید مقدار زیادی کدهای تکراری بارها و بارها برای درج رکورد در یک منبع داده، نوشته میشد؛ اما با استفاده از ویژگی JDBCTemplate که مربوط به ماژول Spring JDBC است، با یک تنظیمات جزئی میتوان مقادیر زیاد و تکراری کد را، فقط به چند خط کاهش داد.
Spring boot چیست؟
Spring Boot، پروژهای است که بر محوریت فریم ورک اسپرینگ (Spring Framework) ساخته شده و روشی ساده و سریع برای تنظیم، پیکربندی و اجرای برنامههای ساده و تحت وب است. در Spring، باید همه موارد را برای خودتان پیکربندی کنید. از این رو، میتوانید تعداد زیادی فایل پیکربندی شده مانند توضیحات XML داشته باشید. این یکی از اصلیترین مشکلاتی است که استفاده از Spring Boot آن را برای شما حل میکند. Spring Boot بهطور هوشمندانه وابستگیهای شما را انتخاب کرده و تمام ویژگیهایی که میخواهید استفاده کنید را بهصورت خودکار پیکربندی میکند، سپس با یک کلیک میتوانید برنامه خود را شروع کنید. علاوه بر این، روند استقرار و اجرای برنامه را نیز ساده میکند.
تفاوت بین Spring و Spring boot:
-
تنظیمات:
Spring boot: در این Spring Framework برای طراحی هیچیک از تنظیمات معمول و موردنیاز در Spring boot، نیازی نیست برنامهنویس همهی موارد را بهصورت جداگانه تعریف کند. Annotation های پیکربندی Spring boot، بهاندازهی کافی برای مدیریت همهی موارد کافی است.
Spring: برای طراحی برنامههای مبتنی بر Spring، برنامهنویس باید همهی تنظیمات Hibernate data source، Entity Manager، Session Factory و Transaction Management را بهصورت دستی انجام دهد.
-
XML:
Spring:برنامهی MVC Spring، برای مدیریت برخی از تعریفهای XML اجباری است.
Spring boot: پیکربندی Spring Boot نیازی به مدیریت ندارد، فقط Annotation ها همهی موارد را مدیریت میکنند.
-
کنترل :
Spring boot: این بخش بهطور خودکار بارگیری را کنترل میکند. از اینرو گزینهای برای حذف بارگیری برخی ویژگیهای پیشفرض اضافه وجود ندارد.
Spring: با توجه به اینکه پیکربندی بهراحتی و بهصورت دستی انجام میشود، بنابراین Spring یا MVC Spring میتواند برخی از ویژگیهای پیشفرض اضافه را برای آن برنامه خاص بارگیری نکند.
-
استفاده:
Spring boot: اگر نوع کاربردهای آیندهی برنامه بهدرستی تعریف نشده باشد، بهتر است از Spring Boot استفاده شود. از آنجا که یکپارچهسازی هر ویژگی خاص Spring در اینجا بهصورت خودکار انجام میشود، بنابراین نیازی به تنظیمات اضافه نیست.
Spring: اگر نوع برنامه یا خصوصیات آن کاملاً مشخص شده باشد، بهتر است از Spring استفاده شود.
تفاوتهای اساسی بین Spring Framework و Spring Boot Framework:
هر دو مدلSpring و Spring Boot از گزینههای محبوب در بازار هستند. ازجمله تفاوتهای عمده بین آنها میتوان به موارد زیر اشاره کرد:
1) Spring
عمدتاً بر روی ویژگیهای اصلی و MVC خود تمرکز دارد و باید پیکربندی را بهصورت دستی انجام دهد. همچنین مشخص کند کدام ویژگی باید برای برنامه استفاده شود. در حالی که Spring Boot، بهطور خودکار تمام ویژگیهای اصلی و MVC را بارگیری میکند. لازم به ذکر است نیازی نیست برنامهنویس پیکربندی خاصی را بهصورت دستی تعریف کند.
2) Spring core
دارای چندین ماژول است که برای اهداف مختلف و برخی از برنامههای کاربردی متداول استفاده میشوند. ماژولهایی مانند Spring JDBC، MVC، AOP، ORM و غیره، برای هر یک از نیازهای پروژه بسیار مفید هستند. همهی آن ماژولها، میتوانند بر اساس نیاز سیستم یا پروژه، پیکربندی و استفاده شوند. در حالی که در Spring Boot میتوان بهراحتی، فقط با تعریف برنامه بهعنوان SpringBootConfiguration@ از همهی این نیازها استفاده کرد. این Annotation برای مدیریت بارگذاری پیکربندی Spring، مدیریت تمام ویژگیهای ماژول بر اساس فایلهای jar و یا وابستگی ذکر شده برای پروژهی Spring Boot، کافی است.
3) Transaction management
یکی از مهمترین کارها در برنامههای فریم ورک اسپرینگ (Spring Framework) است. برنامهنویس باید کلید Transaction management مناسب را برای تمام Session های Hibernate یا اتصال DB (در Spring JDBC) تعریف کند. در برنامههای Spring، کلاسهای مخصوص Transaction، برای اینکه در سراسر برنامه قابل استفاده باشند و بتوانند Transaction ها را بهدرستی مدیریت کنند، باید در فایل پیکربندی مخصوص برنامه تعریف شود. در حالی که Spring Boot، بهطور خودکار تمام دادههای Transaction را بدون نیاز به تنظیمات خاصی به صورت دستی مدیریت میکند. همچنین تمام کارها بهطور خودکار انجام میشوند. یک Transaction را میتوان در زمان باز و بسته شدن Session ها یا اتصالات تعریف کرد. همچنین این Transaction میتواند بر اساس وضعیت تکمیل session، commit شده یا به عقب برگردد.
4) ORM
ادغام ابزار ORM برای هر برنامهی فریم ورک اسپرینگ(Spring Framework)، باید منبع آنها در فایل پیکربندی، توسط برنامهنویس تعریف شده و برای هریک از تبادلات ابزار ORM، تغییراتی اعمال شود. در صورتی که Spring Boot، بهراحتی بهصورت خودکار پیکربندی میشود و نیازی به مداخله دستی ندارد. فقط کافی است یک فایل ویژگی پایگاه داده برای تنظیمات تعریف شود.
و در آخر
وبسایت میربزرگی قصد دارد تا با ارائه مقاله ها و تجربههای کاربردی شما را در زمینه یادگیری و رفع اشکالاتتان کمک کند. در صورت وجود هرگونه سوالی به من ایمیل بزنید.