سلام به همه ی گلای توی خونه ..... من با تومبون راه راه فاق پلاس دوباره اومدم دور هم یه مطلبی رو بنویسم و شما بخونید و بخندید یاد بگیرید.
این مطلب رو هدیه میکنم به هر کسی که با جمله ی قبلی یه لبخندی زد?
خوب دوستان من یه مدته این کتاب زیبا و پر محتوا رو شروع کردم و با سرویس شدن به خوندن ادامه میدم چون زبانم خوب نیست خیلی اذیت میشم اما تصمیم گرفتم هر قسمتشو که خوندم و خزان شدم برای رویش دوباره بیام اینو برای دوستان یکمشو تعریف کنم که دوره هم یه چیزی یاد بگیریم یا اگر من جایی رو اشتباه فهمیدم سروران راهنماییم کنن باشد که رستگار شویم که توی ایران بعیده.
اول این کتاب میاد راجب تاریخچه ی اسپرینگ کمی صحبت میکنه که اصلا چیشد اسپرینگ به وجود اومد قبلش چیا بود و مشکلاتشون چی بود که باعث شد کم کم کم رنگ بشن.
یکی از اینا EJB بود که وقتی اومد واقعا سرو صدای زیادی به پا کرد و جالبه که هنوزم نفس میکشه ولی خوب خیلی نسبت به قبل کم رنگ شده یکی از مشکلاتی که باعث کم رنگ بشه این بود که یسیری چیزا رو به اجبار میگفت باید ایمپلیمنت کنی میگفتی نمیخوام میگفت زر نزن پیاده کن وگرنه هر چی دیدی از چشم خودت دیدی بریم یه نمونه ازین کاردستی رو ببینیم ?
میبینید که برای اینکه یه تکست ساده رو برگردونیم ما مجبوریم این همه چیزی که استفاده نمیکنیم پیاده کنیم و بزاریم باشه/:
البته گاها ممکنه به این توابع نیاز داشته باشین اما خوب الان نداریم?
اینجا بود که خستگان دو عالم برنامه نویسای عزیز رو میگم گفتن بابا جمع کنید این مسخره بازی های جذاب رو...
این بود که یهوووو اسپرینگ اومد من همیشه اسپرینگ رو به یه دختر تشبیه میکنم چون غیر قابل تصور قوی و انعطاف پذیره و صد البته اینترپرایز?
این دختر قصه ی ما در ابتدا این مشکلی که بالا گفتم رو حل کرد.
دیدید تمامی اون توابع بلا استفاده برای این کیس خاص حذف شد.
این اسپرینگ دوتا ویژگی ناز داره :
dependency injection (DI)
aspect-oriented programming (AOP)
خوب این ویژگی ها چیستند و چه کمکی به ما میکنن اول توی این قسمت تزریق وابستگی رو میخوام از کف با جاوا بگم میخوام توی این آموزش هایی که میزارم فقط از بیس بگیم بیایم بالا هم چلنجی برای خودمه و هم اینکه بنظرم یاد گیری میتونه بهتر و عمیق تر باشه.
خوب دوستان فک کنید توی یه کلاس شما بخواید از ویژگی های یه کلاس یا بهتره بگم از توابعش استفاده کنید شما دوتا راه توی عشقم جاوا دارین بریم این دوتا راه رو ببینم که هر دو به کمک تابع سازنده یا constructor
هست یکبار با آرگمان یکبار بدون آرگمان.
خوب حالا سوال اقا مهدی ما از کجا بفهمیم واقعا این اینجکت شده ؟ میتونیم اینجا از ماکیتو کمک بگیریم
حالا ماکیتو چیه ؟ ماکیتو یکی از ابزار ها شایدم نشه گفت ابزار یکی از کتابخونه های تست نویسی توی اسپرینگه که به ما کمک میکنه یسری تست هایی با مقادیر توهمی انجام بدیم مثلا شما میخوایم یه تابعی رو تست کنید که توش وصل میشی به دیتابیس اینجا ما به کمک ماکیتو میایم میگیم فرض کن کانکشن زدی و دیتا فچ شد پس کانکشن واقعی زده نمیشه یه اموزش بی نهایت قوی راجبش استاد رامین زارع سلطان اسپرینگ ایران تدارک دیدن که من لینکشو میزام اینجا دوست داشتین میتونید برین ببینید.
اینجا میاد Quest رو ماک میکنه یعنی واقعی ازش شی نمیسازه بعد میاد میدتش به کلاسش حالا میاد بهش میگه وقتی من mockQuest رو صدا میزنم آیا واقعا یکبار فانکشن embrak صدا زده میشه.
ماکیتو میگه بله بله که صدا زده میشه چی فکر کردی.
خوب اسپرینگ اومد گفت این اینجکت شدن و ساخت شی رو به عهده ی من بسپارید.
سوال چطور؟؟؟ الان بهتون میگم.
میاد میگه یه فایل کانفیگ اول بساز و بهم توش بگو از چه کلاسی میخوای برات شی بسازم و اینجکت کنم.
همون طور که میبینید این کانفیگ فایل در قالب xml اما خودش قول داده که پیاده سازی با انوتیشن رو بگه
ببینید اومده دوتا کلاس BraveKnight & SlayDragonQuest رو بهش داده و گفته برام ازشون bean بساز .
حالا شما باید این فایل رو بدین به application context چرا؟ چون در اسپرینگ این کانتکس هست که تمامی بین ها رو میسازه و اونا رو لود میکنه و بهم متصل میکنه. خودمونی بگم مسئول سیم کشی اسپرینگ و وصل کردن سیم ها بهم کانتکسه.
حالا چطور این کانفیگ فایل رو بدیم به کانتکس ?
ببینید اینجا بهش فایل رو داده و بعد از کانتکس خواهش کرده یه شیء از Knight بهش بده و بهشم میاده.
واقعا بابت تمام غلط های املایم معرت میخوام و اینکه اگر کسی خوند و خیلی متوجه نشد بدونید مشکل از بیان منه نه گیرایی شما در این جهان همه ی ما بینظیریم فقط باید به خودمون اعتماد کنیم امیدوارم که از خوندن این مطلب لذت بردیه باشین.
اسپکت رو توی قسمت بعدی میگم چون هنوز وقت نکردم شروعش کنم و بش مسلط شم.
دست علی یارتون خدانگهدارتون❤️