یک بار با یکی از همکارانم در مورد روش صحیح استفاده بحث و گفتگو کردم @Component
و @StepScope
حاشیه نویسی در یک برنامه جاوا مبتنی بر Spring. ما بحث کردیم که آیا استفاده از هر دو حاشیه نویسی ضروری است یا اینکه منجر به کار اضافی یا رفتار غیرمنتظره می شود. در این مقاله، بینشهایی را از آن بحث به اشتراک میگذارم، موضوع را روشن میکنم، مثالهایی را به اشتراک میگذارم، و ارجاعاتی به مستندات Spring ارائه میدهم تا به شما در راهیابی به رویکرد صحیح کمک کند.
بیان مشکل
سناریوی زیر را در نظر بگیرید: کلاسی دارید که به هر دو کلاس Spring نیاز دارد @Component
حاشیه نویسی و @StepScope
از دسته اسپرینگ این @Component
annotation کلاس شما را به عنوان یک لوبیا مدیریت شده توسط Spring ثبت می کند، در حالی که @StepScope
تضمین می کند که لوبیا با یک چرخه حیات مرتبط با مرحله خاصی در کار دسته ای شما نمونه سازی شده است. ترکیب ممکن است به شکل زیر باشد:
@Component
@StepScope
public class MyStepScopedComponent {
// Class implementation
}
سوال این است: استفاده می کند @Component
با @StepScope
اضافی یا مشکل ساز؟ آیا استفاده از هر دو حاشیه نویسی منطقی است یا باید از رویکرد متفاوتی استفاده کنید؟
درک حاشیه نویسی ها
@Component
: این حاشیه نویسی بخشی از چارچوب اصلی Spring است. این یک کلاس را به عنوان یک لوبیا مدیریت شده توسط Spring علامت گذاری می کند، به این معنی که به طور خودکار کشف و در …