Spring Framework (Spring) چیست؟
Spring Framework (بهار) یک توسعه نرم افزار منبع باز است قاب که پشتیبانی زیرساختی را برای ساخت و ساز فراهم می کند جاوابرنامه های مبتنی بر هر پلت فرم استقرار.
در ژوئن 2003 توسط راد جانسون منتشر شد آپاچی مجوز 2.0، Spring Framework توسط SourceForge میزبانی می شود.
فریم ورک Spring برای چه مواردی استفاده می شود؟
یکی از محبوب ترین نسخه های Java Enterprise (جاوا EE) فریم ورک ها، Spring به توسعه دهندگان کمک می کند تا برنامه های کاربردی با کارایی بالا را با استفاده از اشیاء قدیمی جاوا ساده بسازند (POJO ها) و سرولت ظروف که توسعه را تسریع می کنند. علاوه بر POJO ها، Spring از تکنیک هایی مانند برنامه نویسی جنبه گرا (AOP) و تزریق وابستگی برای ساده سازی توسعه و کاهش هزینه آزمایش و نگهداری برنامه ها. این ویژگیهای چارچوب، Spring را برای ساخت برنامههای سازمانی قابل اعتماد و مقیاسپذیر در جاوا EE 7 مناسب میسازد و در عین حال فرآیند توسعه را ساده میکند.
بر خلاف Spring، چارچوب ها و رابط های برنامه نویسی برنامه های کاربردی کلاسیک (API، مانند اتصال به پایگاه داده جاوا (JDBC) صفحات جاوا سرور و Java Servlet، می توانند ساخت برنامه های جاوا را به یک تلاش پیچیده تر و وقت گیر تبدیل کنند.
علاوه بر Spring و JavaServer Faces، دیگر فریمورک های محبوب جاوا شامل می شوند ماون، خواب زمستانی و لوازم جانبی.
چرا Spring Framework برای برنامه های جاوا؟
بسیاری از برنامه های جاوا پیچیده هستند و ویژگی های زیادی دارند اجزاء که به پایه بستگی دارد سیستم عامل برای ظاهر و خواص آنها. Spring راهی برای ساده کردن پیچیدگی و حل آسان مشکلات فنی مختلفی که توسعه دهندگان ممکن است با آن مواجه شوند فراهم می کند.
Spring به طور گسترده به عنوان یک چارچوب امن، کم هزینه و انعطاف پذیر در نظر گرفته می شود که کارایی کدنویسی را بهبود می بخشد و زمان کلی توسعه برنامه را از طریق استفاده کارآمد از منابع سیستم کاهش می دهد. Spring کار پیکربندی خسته کننده را حذف می کند تا توسعه دهندگان بتوانند روی نوشتن تمرکز کنند منطق تجارت.
علاوه بر این، Spring زیرساخت ها را مدیریت می کند تا توسعه دهندگان بتوانند بر روی توسعه با کیفیت بالا، مفید و برنامه های کاربردی سازمانی مقیاس پذیر بدون نیاز به نگرانی در مورد محیط های استقرار و سایر مسائل زیرساختی.
و بهار چیزهای زیادی فراهم می کند شل متصل ماژول ها یا ساب فریم ها با نام مستعار لایه هایبرای بهبود عملکرد a برنامه تحت وب. این ماژول ها مانند Spring AOP، Spring نگاشت رابطه ای شیSpring Web Flow و Spring Web Model-View-Controller (MVC) را می توان به طور جداگانه یا با هم استفاده کرد که انعطاف پذیری بیشتری را در طول توسعه، به ویژه برای توسعه، فراهم می کند. اپلت ها و برنامه های کاربردی کلاس سازمانی.
Spring Framework چگونه کار می کند
یک برنامه وب (معماری لایه ای) معمولاً شامل سه لایه اصلی است:
- آ لایه نمایشییا رابط کاربریکه نمایش محتوا و تعاملات کاربر را مدیریت می کند.
- آ لایه منطق کسب و کار که به مشخصات عملکردی اساسی یک برنامه می پردازد.
- آ لایه دسترسی به داده که رویه های استخراج داده ها را کنترل می کند.
هر لایه به دیگری بستگی دارد تا برنامه کار کند. به عنوان مثال، لایه ارائه ممکن است نیاز به صحبت با لایه منطق تجاری داشته باشد، که به نوبه خود با لایه دسترسی به داده تعامل دارد. هر یک از این تعاملات منجر به چیزی می شود که معمولاً نامیده می شود وابستگی ها و بین اجزای مختلف سیستم ارتباط ایجاد می کند.
یکی از ویژگی های کلیدی Spring توانایی آن در انجام تزریق وابستگی است که یک مدل برنامه نویسی است که به توسعه دهندگان اجازه می دهد تا بیشتر بسازند. معماری های نامرتبط. Spring حاشیه نویسی های مختلف جاوا را که توسعه دهنده روی آنها قرار می دهد، درک می کند کلاس ها و می تواند به اطمینان حاصل شود که همه نمونه ها وابستگی های ایجاد شده به درستی پر شده اند.
برای نمونه Spring Framework اشیاء و با پر کردن وابستگی ها، برنامه نویس به سادگی به Spring از طریق حاشیه نویسی به Spring می گوید که کدام اشیاء را مدیریت کند و چه وابستگی هایی برای هر کلاس وجود دارد. به عنوان مثال، در @جزء حاشیه نویسی به Spring اجازه می دهد تا بداند کدام کلاس ها را باید مدیریت کند، اشیاء را به عنوان اجزای مدیریت شده علامت گذاری می کند و کلاس هایی را برای تزریق وابستگی شناسایی می کند. به عنوان مثال دیگر، @autowired حاشیه نویسی به بهار می گوید که چگونه با آن برخورد کند نمونه سازی از کلاس و شروع به جستجوی وابستگی بین مؤلفه ها و کلاس ها برای یافتن مطابقت کنید.
فناوری ها و ویژگی های مهم بهار
Spring Framework شامل تعدادی فناوری است که آن را از سایر فریمورک های جاوا متمایز می کند – و در بسیاری از موارد آن را به انتخاب بهتری تبدیل می کند.
وارونگی کنترل
وارونگی کنترل (IoC) یک اصل طراحی در مهندسی نرم افزار که اجرای کنترلی را به چارچوب می دهد – در این مورد Spring. با در دست گرفتن کنترل جریان برنامه و برقراری تماس های سفارشی کدSpring ساخت برنامه های مدولار، برنامه های آزمایشی و جابجایی بین پیاده سازی های مختلف را در صورت نیاز آسان می کند.
تزریق وابستگی
تزریق وابستگی، شکل تخصصی IoC در بهار، یک الگوی طراحی است که در آن اشیا وابستگی های خود را به یکی از سه روش زیر تعریف می کنند:
- استدلال های سازنده
- استدلال به روش کارخانه ای.
- ویژگی هایی که روی نمونه شی پس از ساخته شدن یا بازگشت آن به روش کارخانه ای تنظیم می شود.
ان مونتاژ کننده اشیا را با اشیاء دیگر متصل یا تزریق می کند. تزریق وابستگی باعث ایجاد جفت سست در کد می شود به طوری که تغییرات در یک ناحیه از برنامه کمتر بر دیگری تأثیر می گذارد.
با تزریق وابستگی، کد تمیزتر می شود. همچنین، IOC و تزریق وابستگی آن را آسان می کند کد را تست و نگهداری کنید.
ظرف IoC
این بخشی از چارچوب Spring است که در آن اشیاء ایجاد می شوند، به هم مرتبط می شوند، پیکربندی می شوند و در طول چرخه حیات خود مدیریت می شوند. هدف اصلی آن ایجاد، پیکربندی، مونتاژ و مدیریت Spring beans است. ظرف پیکربندی را می خواند ابرداده – حاوی دستورالعمل هایی از توسعه دهنده و ارائه شده در یک زبان نشانه گذاری قابل توسعه، حاشیه نویسی جاوا یا کد جاوا — برای اینکه بفهمید کدام اشیاء (دانه ها) را نمونه سازی کنید، پیکربندی کنید و مونتاژ کنید. معمولاً برای نمونهسازی یک یا چند نمونه از یک کانتینر Spring IoC، هیچ کد کاربری واضحی لازم نیست.
باب
در Spring Framework، لوبیاها اشیایی هستند که ستون فقرات هر برنامه کاربردی را تشکیل می دهند. Beans توسط کانتینر Spring IoC مدیریت می شود و در ظرف IoC به عنوان اشیاء BeanDefinition نشان داده می شود. همه دانهها و وابستگیهای آنها در فرادادههای پیکربندی استفادهشده توسط یک کانتینر و ارائهشده توسط توسعهدهنده برنامه منعکس میشوند. هر لوبیا دارای یک شناسه منحصر به فرد است، اگرچه ممکن است شناسه های دیگری نیز وجود داشته باشد که به عنوان شناخته می شوند نام مستعار.
دیگر اصطلاحات مهم در بهار
در اینجا چند اصطلاح مهم مرتبط با بهار وجود دارد که توسعهدهندگان باید قبل از کار با فریمورک بدانند:
- مشارکت کنندگان سیم کشی خودکار این فرآیندی است که طی آن Spring به طور خودکار همکاران (دیگر لوبیاها) را برای یک لوبیا حل می کند. توسعه دهندگان همچنین این گزینه را دارند که پس از آن به سیم کشی صریح تغییر مسیر دهند پایه کد تثبیت می کند.
- لوبیا با تنبلی اولیه تعاریف Bean را میتوان بهعنوان lazy-initialized علامتگذاری کرد تا به ظرف IoC بگوییم که Bean را در هنگام راهاندازی یا پیشنمونه نمونهسازی نکند، اما زمانی که برای اولین بار درخواست شد.
- لوبیا تک تنه و غیرسینگلتون. با یک لوبیا تک تن، اسپرینگ یک تعریف لوبیا را به یک نمونه از یک شی برای هر ظرف IoC محدود می کند. اگر توسعهدهنده با تعریف یک دانه بهعنوان ویژگی دیگری، وابستگی را کنترل کند، Bean Singleton میتواند با سایر دانههای سینگلتون همکاری کند.
- محدوده لوبیا. Spring از شش محدوده لوبیا پشتیبانی می کند: singleton، نمونه اولیه، درخواست، جلسه، برنامه کاربردی و وب سوکت. توسعه دهندگان می توانند beans را برای استقرار در یکی از این شش حوزه تعریف کنند. اسپرینگ همچنین از محدوده های سفارشی پشتیبانی می کند، اگرچه نمی توان اسکوپ های تکی و نمونه اولیه داخلی را نادیده گرفت.
مزایای Spring Framework
مزیت اصلی Spring این است که بسیاری از موارد را حذف می کند پیچیدگی های مرتبط با جاوا برنامه نویسی و به سرعت بخشیدن به فرآیندهای توسعه و آزمایش برنامه کمک می کند. این به این دلیل است که یک فریمورک سبک وزن است، از برنامه های کاربردی با اتصال آزاد پشتیبانی می کند و قالب های از پیش تعریف شده ای را برای JDBC، Hibernate و غیره ارائه می دهد. مزیت دیگر این است که Spring یک چارچوب غیر تهاجمی است زیرا توسعه دهندگان را مجبور به ارث بردن کلاس ها یا پیاده سازی رابط ها در طول توسعه نمی کند.
با Spring، توسعه دهندگان می توانند به راحتی کد بنویسند تا از API persistence برای ذخیره و دسترسی به داده های ماندگاری در آن استفاده کنند. پایگاه داده. آنها همچنین می توانند برنامه های کاربردی وب ساخته شده بر اساس معماری Spring Web MVC، یک چارچوب وب ساخته شده بر روی Servlet API با پشتیبانی از انواع مختلف ایجاد کنند. گردش کار.
Spring از دو زبان پشتیبانی می کند: کاتلین و شیار. Kotlin به توسعه دهندگان اجازه می دهد تا کدهای کوتاه و ظریف بنویسند و می باشد قابل همکاری با کتابخانه های جاوا موجود Groovy یک نحو مختصر و یکپارچه سازی یکپارچه با برنامه های جاوا موجود ارائه می دهد. علاوه بر این، Spring از استفاده از کلاسها و اشیاء تعریفشده با زبان پویا پشتیبانی میکند تا توسعهدهندگان بتوانند از کانتینرهای Spring IoC برای نمونهسازی شفاف، پیکربندی و تزریق وابستگیها به اشیاء مشتق شده استفاده کنند.
از دیگر فواید و مزایای بهار می توان به موارد زیر اشاره کرد:
- با چندین فناوری از جمله ادغام می شود انتقال دولت نماینده مشتریان، برنامه های افزودنی مدیریت جاوا، سرویس پیام رسانی جاوا و ماشین مجازی جاوا بازیابی یک ایست بازرسی
- استفاده صحیح از IoC هر دو را ساده می کند تست واحد و تست ادغام.
- این پشتیبانی جامع برای مدیریت تراکنش با یک مدل برنامهنویسی سازگار، یک API سادهتر برای مدیریت تراکنشهای برنامهای، و ادغام با انتزاعهای دسترسی به دادههای Spring ارائه میکند.
- با زبان Spring Expression، نمودارهای شی را می توان در زمان اجرا پرس و جو کرد و دستکاری کرد.
- جزء AOP اسپرینگ، با جنبه هایی که ماژولار بودن را تعریف می کند، امکان مدولار شدن مشکلات را در چندین نوع و اشیاء فراهم می کند.
یک چارچوب یکپارچه سازی خوب باید در قلب هر استراتژی کاربردی باشد و می تواند ادغام را در مقیاس ساده کند. نگاهی بیاندازید چارچوب های یکپارچه سازی برتر: آپاچی در مقابل اسپرینگ در مقابل مول.