![سست ماڻهن لاءِ بهار فائونڊيشن، بنيادي مفهوم، ۽ ڪوڊ سان مثال. حصو 1 - 1](https://cdn.codegym.cc/images/article/f7031b45-d586-4dfa-8dc5-da610489430c/800.jpeg)
بهار جو فريم ورڪ ڇا آهي؟
اسپرنگ فريم ورڪ، يا بس اسپرنگ، جاوا ۾ ويب ايپليڪيشن ٺاهڻ لاءِ مشهور فريم ورڪ مان هڪ آهي. هڪ فريم ورڪ هڪ لائبريري وانگر آهي (شايد توهان هن اصطلاح سان وڌيڪ واقف آهيو)، پر غور ڪرڻ لاء ڪجهه آهي. عام طور تي ڳالهائڻ، جڏهن توهان لائبريري استعمال ڪندا آهيو، توهان صرف انهن ڪلاسن جا مثال ٺاهيندا آهيو جيڪي ان ۾ شامل آهن، انهن طريقن کي ڪال ڪريو جيڪي توهان کي گهربل آهن، ۽ اهڙيء طرح توهان کي گهربل نتيجو حاصل ڪريو. ٻين لفظن ۾، اهو وڌيڪ لازمي طريقو آهي: توهان جي پروگرام ۾، توهان واضح طور تي مخصوص لمحن جي نشاندهي ڪندا آهيو جڏهن توهان کي ڪهڙي شئي ٺاهڻ جي ضرورت آهي، ڪهڙي مخصوص طريقي سان، وغيره. فريم ورڪ سان، شيون ڪجهه مختلف آهن. توهان صرف پنهنجا ڪجهه طبقا لکو ۽ انهن ۾ ڪجهه منطق لکو، پر پوءِ فريم ورڪ پاڻ توهان جي طبقن جا مثال ٺاهي ٿو ۽ انهن جي طريقن کي سڏي ٿو. توھان جا ڪلاس عام طور تي فريم ورڪ مان ڪجھ انٽرفيس تي عمل ڪندا آھن يا ان جي ڪجھ ڪلاسن کي ورثي ۾ رکندا آھن، اھڙيءَ طرح توھان کي ڪجھ ڪارڪردگي مهيا ڪندا آھن جيڪي توھان لاءِ اڳ ۾ ئي لکيل آھن. پر اهو هميشه نه آهي. مثال طور، اسپرنگ جيترو ممڪن ٿي سگهي ڪوشش ڪري ٿو ته اهڙي تنگ جوڙي کان بچڻ لاءِ (جتي توهان جا ڪلاس سڌو سنئون فريم ورڪ ۾ ڪلاس/انٽرفيس تي ڀاڙين ٿا). اهو حاصل ڪرڻ لاء تشريح استعمال ڪري ٿو. اسان ان کي بعد ۾ واپس ڪنداسين. پر اهو سمجهڻ ضروري آهي ته بهار صرف ڪلاسن ۽ انٽرفيس جو هڪ مجموعو آهي جيڪي توهان لاءِ استعمال ڪرڻ لاءِ موجود آهن :) مان اهو پڻ نوٽ ڪرڻ چاهيان ٿو ته بهار نه رڳو ويب ايپليڪيشنن لاءِ، پر عام ڪنسول پروگرامن لاءِ پڻ استعمال ڪري سگهجي ٿو. جيڪي اسان سڀني کان واقف آهن. ۽ اسان اڄ به انهن مان هڪ لکنداسين.ساخت
پر بهار صرف هڪ خاص فريم ورڪ ناهي. بلڪه، اهو هڪ عام نالو آهي جيڪو ڪيترن ئي ننڍڙن فريم ورڪ جي حوالي سان استعمال ڪيو ويندو آهي، جن مان هر هڪ پنهنجي قسم جو ڪم ڪندو آهي.![سست ماڻهن لاءِ بهار فائونڊيشن، بنيادي مفهوم، ۽ ڪوڊ سان مثال. حصو 1 - 2](https://cdn.codegym.cc/images/article/c7cd9e69-bd9a-424d-b54b-eb61283b1353/800.jpeg)
https://docs.spring.io/spring/docs/4.3.26.RELEASE/spring-framework-reference/htmlsingle/
شڪل 2.1. بهار جي فريم ورڪ جو جائزو
- ڊيٽا جي رسائي
- ويب
- ڪور
- ۽ وڌيڪ
جاوا وٽ اسپرنگ فريم ورڪ ڇو آهي؟
خير، ان حقيقت کان سواءِ ته اهو فيشني، سليڪ ۽ تازو آهي، مان هن وقت اهو چئي سگهان ٿو ته جيئن ئي توهان بهار جي استعمال سان ٿوري گهڻي مهارت حاصل ڪندا، توهان سمجهي ويندؤ ته هتي هر قسم جا ڪم آهن جيڪي توهان وٽ هاڻي نه آهن. ڪرڻ لاء، ۽ ڪيترو ڪم بهار پاڻ تي وٺندو آهي. توھان لکي سگھوٿا ڪجھ درجن جون لائينون ٺاھڻ جون سيٽنگون ۽ ڪجھ طبقا لکي سگھوٿا، ۽ توھان ھڪڙي ڪم ڪندڙ منصوبي سان ختم ڪريو. پر جيئن ئي توهان سوچڻ شروع ڪيو ته هود جي هيٺان ڪيترو سامان آهي، ڪيترو ڪم ٿي رهيو آهي، ۽ توهان کي ڪيترو ڪوڊ لکڻو پوندو جيڪڏهن توهان ساڳيو پروجيڪٽ تي عمل ڪرڻ وارا آهيو، ساکٽس يا ساکٽس ۽ خالص جاوا جي بنياد تي، توهان جا وار ختم ٿي ويندا :) بهار کي به جادو جي هڪ قسم جي طور تي بيان ڪيو ويو آهي. توهان اهو تجربو تڏهن ڪندا آهيو جڏهن توهان ڏسندا آهيو ته سڀ ڪجهه ڪم ڪري ٿو، پر توهان کي اهو به اندازو آهي ته پردي جي پويان ڪيئن ۽ ڪيترو ڪم ٿي رهيو آهي - تنهنڪري اهو لڳي ٿو ته واقعي عمل ۾ ڪنهن قسم جو جادو آهي :) ان کي جادو سڏڻ آسان آهي. انهي جي وضاحت ڪرڻ جي ڪوشش ڪرڻ کان علاوه اهو سڀ ڪجهه ڪيئن ڳنڍيل آهي. :) اسپرنگ جي مطالعي جي حق ۾ ٻيو دليل اهو آهي ته جونيئر ڊولپرز (منهنجي ذاتي مشاهدن جي بنياد تي) لاءِ تقريباً 90% نوڪريءَ جو افتتاح (منهنجي ذاتي مشاهدي جي بنياد تي) جي ضرورت آهي يا ته ڄاڻ يا گهٽ ۾ گهٽ هڪ عام خيال جي ته ڇا بهار، ۽ ماڊلز پيش ڪن ٿاData
نفيس Web MVC
ڊولپرز Security
:) پر اڄ صرف بنيادي ڳالهين بابت آهي.
DI/IoC
جيڪڏهن توهان ڪڏهن به بهار جي باري ۾ پڙهڻ جي ڪوشش ڪئي آهي، ته پوءِ پهرين شيءِ جيڪا توهان کي سامهون آئي، شايد اهي اهي مخفف هئا: DI/IoC. ھاڻي مان ھاڻي سفارش ڪريان ٿو ته توھان ھن مضمون مان ھڪڙو وقفو وٺو ۽ ھي DZone مضمون پڙھو ! IoC جو مطلب آهي ڪنٽرول جي ڦيرڦار. ان جو ذڪر مون اڳ ۾ ئي ڪيو آهي جڏهن مون لکيو هو ته لائبريري استعمال ڪرڻ ۾ توهان پاڻ پنهنجي ڪوڊ ۾ اشارو ڪيو ته ڪهڙي طريقي سان ڪهڙي شئي تي ڪال ڪجي، پر عام طور تي فريم ورڪ استعمال ڪرڻ جو مطلب اهو آهي ته فريم ورڪ توهان جي ڪوڊ کي صحيح وقت تي ڪال ڪندو. ٻين لفظن ۾، هن پوئين صورت ۾، توهان هاڻي ڪوڊ/پروگرام تي عمل ڪرڻ جي عمل کي منظم نه ڪري رهيا آهيو - فريم ورڪ اهو توهان لاءِ ڪندو آهي. توهان فريم ورڪ تي ڪنٽرول پاس ڪيو (ڪنٽرول جي ڦيرڦار). DI جو مطلب آهي انحصار انجيڪشن . انحصار انجيڪشن سان، توهان بنيادي طريقي سان ٻلي شيون نه ٺاهي ۽ پوء انهن کي توهان جي طريقن ڏانهن منتقل ڪريو. ان جي بدران، اسپرنگ فريم ورڪ انهن کي توهان لاء ٺاهي ٿو. توهان صرف ڪجهه چئو ٿا جهڙوڪ "مان هتي هڪ ٻلي حاصل ڪرڻ چاهيان ٿو" ۽ فريم ورڪ توهان جي طريقي سان توهان ڏانهن منتقل ڪري ٿو. اسان هن مخفف کي ايندڙ مضمونن ۾ ڏسنداسين.ڀاڄيون ۽ حوالا
بهار ۾ اهم تصورن مان هڪ هڪ لوبان آهي. حقيقت ۾، اهو صرف ڪجهه طبقي جو هڪ اعتراض آهي. فرض ڪريو اسان وٽ ھڪڙو پروگرام آھي جنھن لاءِ 3 شيون گھرجن: ھڪ ٻلي، ھڪ ڪتو ۽ ھڪڙو طوطا. ۽ اسان وٽ طبقن جو ھڪڙو گروپ آھي طريقن جي ھڪڙي گروپ سان. ڪڏهن ڪڏهن اسان کي ڪنهن طريقي لاءِ ٻلي جي ضرورت هوندي آهي، ڪڏهن ڪڏهن اسان کي مختلف طريقي لاءِ ڪتي جي ضرورت هوندي آهي، ۽ ڪڏهن ڪڏهن اسان جي طريقن کي ٻلي ۽ طوطي ٻنهي جي ضرورت هوندي آهي (مثال طور، ٻلي کي کارائڻ جو طريقو، ها-ها). اڃا به ٻين طريقن لاء، سڀني ٽن شين جي ضرورت آهي. ها، اسان پهريان اهي ٽي شيون ٺاهي سگهون ٿا مکيه طريقي سان، ۽ پوءِ انهن کي پنهنجي ڪلاسن ۾ پاس ڪريون، ۽ پوءِ انهن ڪلاسن ۾ انهن کي لاڳاپيل طريقن ڏانهن منتقل ڪريون... ۽ ائين ئي سڄي پروگرام ۾. پر جيڪڏهن اسان اهو به سمجهون ٿا ته اسان ڪڏهن ڪڏهن پنهنجي طريقن لاءِ ان پٽ پيرا ميٽرن جي لسٽ کي تبديل ڪرڻ چاهيون ٿا (مثال طور، اسان فيصلو ڪريون ٿا ڪنهن شيءِ کي ٻيهر لکڻ يا نئين ڪارڪردگي شامل ڪرڻ)، ته پوءِ اسان کي ڪوڊ ۾ ڪافي تبديليون ڪرڻيون پونديون. ۽ هاڻي تصور ڪريو ته اسان وٽ 3 نه، پر 300 اهڙيون شيون آهن. ھڪڙو متبادل اھو آھي ته اسان جي سڀني شين کي ھڪڙي فهرست ۾ گڏ ڪيو وڃي (List<Object>
)، ان کي ھر طريقي سان پاس ڪريو، ۽ پوء طريقن جي اندر اندر ضروري اعتراض حاصل ڪريو. پر جيئن پروگرام هلندو آهي، ڇا ٿيندو جيڪڏهن ڪجهه اعتراض هن لسٽ ۾ شامل ڪيو وڃي، يا بدترين، ڇا ٿيندو جيڪڏهن هڪ کي ختم ڪيو وڃي؟ اهو هر طريقي کي ٽوڙڻ جي صلاحيت آهي جتي اسان فهرست مان شيون حاصل ڪرڻ لاء انڊيڪس استعمال ڪندا آهيون. هن مسئلي کان بچڻ لاءِ، اسان فيصلو ڪريون ٿا ته اسان جون شيون هڪ فهرست ۾ نه، پر هڪ نقشي ۾، جتي ڪنجي شئي جو نالو آهي ۽ قدر خود اعتراض آهي. هي اسان کي انهن شين کي ٻيهر حاصل ڪرڻ جي اجازت ڏئي ٿو جن جي اسان کي ضرورت آهي صرف انهن جو نالو استعمال ڪندي، مثال طور get("parrot")، ۽ جواب ۾ اسان کي parrot اعتراض ملي ٿو. يا ڪنجي ٿي سگهي ٿي اعتراض جو طبقو، ۽ قدر ٿي سگهي ٿو پاڻ کي اعتراض. انهي حالت ۾، اعتراض جي نالي جي وضاحت ڪرڻ بجاء، پر صرف اسان کي ضرورت آهي اعتراض جي طبقي کي مخصوص ڪري سگهون ٿا. اهو پڻ آسان آهي. يا اسان نقشي لاءِ ڪي قسم جا ريپر به لکي سگهون ٿا، جتي ڪي طريقا شيون حاصل ڪن ٿا انهن جي نالي سان، ۽ ٻيا طريقا شيون حاصل ڪن ٿا انهن جي طبقي سان. جيڪو اسان هتي پهچي چڪا آهيون ان کي اسپرنگ فريم ورڪ ۾ ايپليڪيشن جي حوالي سان سڏيو ويندو آهي. هڪ حوالو شينهن جو مجموعو آهي (شيون). اسان هڪ حوالن تائين پهچون ٿا حاصل ڪرڻ لاءِ جنهن کي اسان کي ضرورت آهي ان جي نالي سان، ان جي قسم سان، يا ڪنهن ٻئي طريقي سان. اضافي طور تي، اسان بهار پاڻ کان پڇي سگھون ٿا ته ان جي پنهنجي تناظر ۾ ڏسڻ لاءِ جنهن کي اسان جي ضرورت آهي ۽ ان کي اسان جي طريقي سان منتقل ڪيو وڃي. مثال طور، فرض ڪريو اسان وٽ ھڪڙو طريقو ھي آھي:
public void doSomething(Cat cat) {
...
}
جڏهن بهار هن طريقي کي سڏيو، اهو اسان جي ٻلي اعتراض کي ان جي حوالي سان ورتو ۽ ان کي طريقي سان منتقل ڪيو. پر هاڻي اسان اهو فيصلو ڪيو آهي ته، ٻلي کان علاوه، اسان جي طريقي کي هڪ طوطي جي ضرورت آهي. بهار سان، ڪجھ به آسان نه ٿي سگهي! اسان صرف لکون ٿا:
public void doSomething(Cat cat, Parrot parrot) {
...
}
هاڻي جڏهن بهار اسان جي طريقي کي سڏي ٿو، اهو سمجهي ٿو ته ٻلي ۽ هڪ طوطي کي پاس ڪرڻ جي ضرورت آهي، تنهنڪري اهو ان جي حوالي سان وڃي ٿو، انهن ٻنهي شين کي حاصل ڪري، ۽ انهن کي اسان جي طريقي ڏانهن منتقل ڪري ٿو. ڪنٽرول جي رين کي بهار ڏانهن منتقل ڪرڻ سان، اسان شيون ٺاهڻ ۽ انهن کي اسان جي طريقن ڏانهن منتقل ڪرڻ جي ذميواري پڻ منتقل ڪريون ٿا، جن کي بهار سڏيو ويندو. هي سوال پيدا ڪري ٿو: بهار کي ڪيئن خبر پوي ٿي ته ڪهڙيون شيون (بين) ٺاهڻيون آهن؟
ايپليڪيشن کي ترتيب ڏيڻ جا طريقا
ايپليڪيشن کي ترتيب ڏيڻ جا ٽي مکيه طريقا آهن ، اهو آهي، Spring کي ٻڌائڻ جا طريقا جيڪي شيون اسان کي گهرجن:- XML ترتيب ڏيڻ واريون فائلون
- جاوا جي بنياد تي ٺاھ جوڙ
- خودڪار ترتيب
- مٿين ترجيح سان طريقو، جنهن کي ترجيح ڏني وڃي، خودڪار ترتيب آهي
- جيڪڏهن خودڪار ترتيب استعمال نه ٿي ڪري سگھجي ته صحيح طور تي سڀني ممڪنن کي ترتيب ڏيڻ لاءِ، استعمال ڪريو Java-based configuration (جنهن ۾ جاوا ڪوڊ استعمال ڪندي شيون ٺاهڻ شامل آهن)
- ۽ سڀ کان گھٽ اوليت وارو طريقو پراڻي طريقي سان آھي - استعمال ڪندي XML config فائلون.
GO TO FULL VERSION