پرش به محتوای اصلی
مسیر تخصصی جاوا و Spring
درخواست پروژهارتباط با ماراهنما
جاواپرو v1.2.8یاد بگیر، تمرین کن، حرفه‌ای بساز
خانهدوره‌هاآموزش رایگانوبلاگمدرس‌هاخدمات
خانهEJB چیست و چه کاربردی در زبان جاوا دارد؟
وبلاگ »

EJB چیست و چه کاربردی در زبان جاوا دارد؟

اگر می خوای به سمت برنامه نویسی سازمانی جاوا بروی این مطلب ارزشمند رو از دست ندهید

۹ دقیقه مطالعهوبلاگ »آموزش جاوا و انجام پروژه های برنامه نویسی
EJB چیست و چه کاربردی در زبان جاوا دارد؟
محتوای منتخب جاواپرو

خلاصه مطلب

اگر می خوای به سمت برنامه نویسی سازمانی جاوا بروی این مطلب ارزشمند رو از دست ندهید
نوع محتوامقاله آموزشی
موضوعوبلاگ »
زمان مطالعه۹ دقیقه
آخرین ویرایش۲۴ بهمن ۱۴۰۰
معرفی فریمورک های سازمانی زبان برنامه نویسی جاوا
معرفی فریمورک های سازمانی زبان برنامه نویسی جاوا

EJB بستر سمت سرور جاوا برای توسعه برنامه های تجاری توزیع شده. یک پلتفرم زبان جاوا در سمت سرور که برای توسعه و گسترش نرم افزارهای کاری توزیع شده است. اولین خصوصیاتی بود که روشی آسان برای کپسوله سازی و استفاده مجدد از منطق تجاری در برنامه های سازمانی جاوا ارائه داد.

مباحث پرکاربرد و مهم زبان جاوا رو به صورت رایگان آموزش ببین
مباحث پرکاربرد و مهم زبان جاوا رو به صورت رایگان آموزش ببین

EJB چیست و چه کاربردی در زبان جاوا دارد؟

بستر سمت سرور جاوا برای توسعه برنامه های تجاری توزیع شده EJB مخفف کلمات Enterprise Java Bean می باشد. یک پلتفرم زبان جاوا در سمت سرور که برای توسعه و گسترش نرم افزارهای کاری توزیع شده است.معماری EJB از سه جز اصلی تشکیل شده است: لوبیای سازمانی (EJB) ، ظرف EJB و سرور برنامه جاوا . درون یک ظرف EJB اجرا می شوند و ظرف EJB درون یک سرور برنامه جاوا اجرا می شود.

دو نوع EJB وجود دارد - لوبیای جلسه ای و لوبیای پیام محور: لوبیای جلسه توسط کاربر فراخوانی می شود و عملکردهای سازمانی مانند معاملات و مدیریت منابع را به صورت برنامه ریزی در دسترس کاربر قرار می دهد. لوبیای پیام محور همچنین عملکرد شرکت را کپسوله کرده و تحویل می دهد ، اما ناهمگام و مبتنی بر رویداد است. لوبیاهای پیام محور به وقایع گوش می دهند و پاسخ می دهند ، و کاربر نمی تواند آنها را فراخوانی کند. هنگامی که برای ایجاد ماندگاری در سیستم EJB استفاده می شود ، لوبیای موجودیت توسط Java Persistence API جایگزین می شوند.

آموزش فریمورک های سازمانی زبان برنامه نویسی جاوا
آموزش فریمورک های سازمانی زبان برنامه نویسی جاوا

رابط های EJB

EJB در مقابل JavaBeans Enterprise JavaBeans اولین مدل توسعه مبتنی بر مولفه برای Java EE بود. EJB از لحاظ مؤلفه بودن به JavaBeans شباهت دارد ، اما این همان جایی است که شباهت به پایان می رسد: JavaBean یک کلاس جاوا است که چندین اشیا را در خود قرار داده و مطابق با قراردادهای خاص است. JavaBeans عمدتا برای توسعه سمت کاربر استفاده می شود. EJB یک کلاس جاوا است که با قابلیت های خاص سمت سرور عجین شده است. لوبیای سازمانی در برنامه ها و سیستم های تجاری وسیع مورد استفاده قرار می گیرد.

لوبیای جلسه لوبیای جلسه عمومی ترین نوع لوبیای سازمانی است که نمایانگر یک بخش عمده از عملکرد تجاری است که می تواند توسط کاربر فراخوانی شود. کاربر در این حالت می تواند کلاس دیگری در JVM محلی یا ارتباط از راه دور باشد.

محتوای EJB چرخه حیات لوبیای جلسه را مدیریت می کند ، که با توجه به وضعیت لوبیا تعیین می شود: لوبیای جلسه بدون حالت مشابه دامنه درخواست در Java Servlet API است. لوبیای جلسه ای بدون حالت شامل قسمتی از قابلیت ارتباط پذیر است اما در غیر این صورت فاقد حالت است. حبوبات جلسه با حالت فقط با یک کاربر مرتبط هستند و به جلسه در حال انجام آن کاربر پیوست می شوند. دانه های جلسه با حالت عملکردی مشابه دامنه جلسه در Servlet API دارند.

کاربرد فریمورک EJB در زبان برنامه نویسی جاوا چیست؟
کاربرد فریمورک EJB در زبان برنامه نویسی جاوا چیست؟

ساختار EJB

ایمنی نخ با لوبیای جلسه ای یک سرویس دهنده لوبیای حالت دار همزمان می تواند فقط توسط یک کاربر دسترسی پیدا کند ، بنابراین ایمنی نخ هنگام کار با این نوع لوبیا تضمین می شود. لوبیای جلسه ای بدون حالت و لوبیای منفرد انعطاف پذیرتر است و امکان اتصال همزمان را فراهم میکند که باید توسط توسعه دهنده مدیریت شود. شما در هنگام کار با این نوع لوبیا مسئول ایمنی نخ هستید.

آموزش برنامه نویس وب با زبان جاوا
آموزش برنامه نویس وب با زبان جاوا

ایمن سازی EJB

لوبیای پیام محور لوبیای پیام محور JMS(سرویس پیام جاوا) فراخوانی می شوند. JMS ، در جایی که لوبیای پیام محور به عنوان شنونده دستور عمل می کند ، همانند یک الگوی دستور توزیع شده ، عمل می کند. هنگامی که پیامی بر روی یک موضوع یا صف می رسد ، لوبیای پیام محور که در آن موضوع گوش می دهد فراخوانی می شود.

لوبیای پیام محور معمولاً به اندازه لوبیای جلسه ای استفاده نمی شود اما قدرتمند است. ناهماهنگ و مبتنی بر رویداد ، به ویژه برای مشاغل طولانی مدت که صرفه جویی در منابع مهم است ، بسیار مفید هستند.

ساده ترین معماری شامل برنامه EJB و محتوا و سرور آن است که با سرویس پردازش پیام MDB هماهنگ می شوند. در تولید ، معماری شما احتمالاً شامل مؤلفه سوم اختصاص یافته به مصرف حبوبات است. در توسعه ، همه این اجزا می توانند با همان ماشین محلی کار کنند.

شکل 1 معماری رویدادی محور را با لوبیاهای پیام محور نشان می دهد.

معماری EJB در زبان برنامه نویسی جاوا
معماری EJB در زبان برنامه نویسی جاوا

معماری رویدادی EJB

کار با لوبیا پیام محور بیشتر از استفاده از لوبیای جلسه ای است. در یک محیط رویداد محور معمولاً به یک کارگزار پیام مانند ActiveMQ نیاز دارید.در حالی که لوبیای جلسه ساده تر است و بنابراین بیشتر در EJB استفاده می شود ، معماری های مبتنی بر رویداد به ویژه با انفجار ریز سرویس ها محبوب شده اند.

حاشیه نویسی EJB تعریف و مصرف حبوبات سازمانی نکته مهمی برای بسیاری از توسعه دهندگان تا نسخه EJB 3.0 بود که حاشیه نویسی ها را به مشخصات EJB وارد کرد. حاشیه نویسی پیکربندی حبوبات سازمانی را برای طیف گسترده ای از عملکردهای موجود در Java EE بسیار آسان می کند.

لوبیای جلسه بدون حالت را تعریف کنید.

برای تعیین یک کلاس به عنوان یک جلسه بدون حالت ، از javax.ejb.Stateless حاشیه استفاده می کنید ، همانطور که در لیست 1 نشان داده شده است.

لیست کردن 1. مثال حاشیه نویسی بدون حالت

import javax.ejb.Stateless;
@Stateless
public class MyStatelessBean {
public String getGreeting() {
return "Hello JavaWorld.";
}
}

این لوبیای بدون حالت حاوی یک امضای ساده است که هیچ استدلالی نمی گیرد و یک رشته را برمی گرداند. اجازه ندهید سادگی شما را گول بزند: این لوبیا می تواند هر کاری را که لازم دارید انجام دهد ، از جمله تعامل با لوبیا ، خدمات دیگر یا لایه داده برنامه شما.

EJB@: یک لوبیای بدون حالت مصرف کنید

هنگامی که یک لوبیای جلسه را تعریف کردید ، استفاده از آن بسیار ساده است:

لیست 2. مثال حاشیه ای EJB

public class MyServlet extends HttpServlet {
@EJB
MyStatelessBean  myEjb;
public void doGet(HttpServletRequest request,
HttpServletResponse response) {
response.getWriter().write("EJB Says " + myEjb.getGreeting());
}
}

Remote@ : رابط EJB از راه دور را تعریف کنید در مثال های بالا ، فرض کردیم کاربر EJB و EJB در همان JVM در حال اجرا هستند. اگر Enterprise bean و کاربر آن در JVM های جداگانه در حال اجرا هستند ، EJB باید یک رابط Remote@ تعریف کند. در این حالت ، همانطور که در لیست 3 نشان داده شده است ، تعریف و پیاده سازی رابط با شماست .

لیست 3. مثال حاشیه نویسی از راه دور

@Remote
public interface MyStatelessEjbRemote {
String sayHello(String name);
}

رابط راه دور برای فراخوانی به کاربر ارسال می شود. سپس ارتباط با آن با اجرای سمت سرور EJB برآورده می شود. مثال MyStatelessBean در لیست 4 رابط راه دور را پیاده سازی می کند.

لیست 4. اجرای یک رابط راه دور

public class MyStatelessBean implements MyStatelessEjbRemote{
...
}

رابط محلی در مقابل راه دور اگرچه دانستن چگونگی پیاده سازی یک رابط از راه دور مهم است ، اما در عمل استفاده از رابط محلی معمول تر است. رابط محلی به طور پیش فرض استفاده می شود و هر زمان EJB در همان زمینه JVM فراخوانی شود کار می کند. استفاده از رابط از راه دور هنگامی پخش می شود که برنامه در چندین JVM توزیع شده باشد.

موضوع و زمانبندی موضوع با Singletons ایمنی نخ هنگامی که با لوبیای جلسه کار می کنید ساخته می شود ، اما چندین مشتری به طور همزمان می توانند به لوبیای بدون حالت و به صورت تک نفره دسترسی داشته باشند. توسعه دهندگان هنگام اجرای این نوع حبوبات مسئول ایمنی نخ هستند.

لوبیای Singleton از طریق حاشیه نویسیLock پشتیبانی از ایمنی نخ را ارائه می دهد. برای تعیین امتیازات خواندن / نوشتن برای هر روش می توانید از حاشیه نویسی Lock در روش های singleleton bean استفاده کنید. دو گزینهLock (LockType.READ) یا Lock (LockType.WRITE) است که پیش فرض است.

یکی دیگر از ویژگی های مفید لوبیا تک قلو ، امکان برنامه ریزی کارها به روشی ساده و استفاده از حاشیه نویسی Schedule است. لیست 5 نحوه برنامه ریزی یک کار روزانه در ظهر را نشان می دهد.

لیست 5. مثال حاشیه ای زمانبندی @Schedule

@Singleton
public class MySchedulerBean {
@Schedule(hour = "12")
void doIt() {
System.out.println("Hello at Noon!");
}
}

CDI در مقابل EJB CDI یا Context and Dependency Injection مشخصات جدیدتر سازمانی است که به گفته برخی از توسعه دهندگان می تواند جایگزین EJB شود. در سطح بالا ، CDI یک چارچوب مؤلفه های عمومی را ارائه می دهد ، در حالی که EJB برای اجزای جداگانه منحصر به فرد خود برجسته است. در حالی که CDI از تزریق وابستگی برای تعریف و ارجاع هر مؤلفه نرم افزاری استفاده می کند ، مؤلفه های EJB به طور رسمی تر تعریف می شوند و هرکدام مجموعه خاصی از قابلیت ها را خارج از جعبه ارائه می دهند. هر دو مشخصات برای توسعه آینده به عنوان بخشی از Jakarta EE در نظر گرفته شده است ، جایی که در نهایت این سوال که آیا CDI باید جایگزین EJB شود حل خواهد شد.

چرخه حیات EJB در زبان جاوا
چرخه حیات EJB در زبان جاوا

چرخه حیات EJB

نتیجه Enterprise JavaBeans اولین خصوصیاتی بود که روشی آسان برای کپسوله سازی و استفاده مجدد از منطق تجاری در برنامه های سازمانی جاوا ارائه داد. به دور از روح سنگین وزن قدیم ، امروزه EJB یک چارچوب ناب و مبتنی بر حاشیه نویسی است که به شما امکان می دهد به طیف گسترده ای از عملکردهای شرکت ، دقیقاً خارج از جعبه دسترسی پیدا کنید. دفعه بعدی که از شما خواسته شد تا به سرعت یک برنامه تجاری توزیع شده و قابل توسعه را افزایش دهید ، EJB را در نظر بگیرید. ممکن است به طرز خوشایندی تعجب کنید.

برچسب‌هاوبلاگ »مقالات جاوا »EJBEJB چیستآموزش EJBزبان جاواجاواjavaزبان javaآموزش زبان جاوازبان برنامه نویسی جاواآموزش برنامه نویسی جاواسمت سرور جاوابرنامه های سازمانی جاوا
ادامه مسیر

پیشنهاد جاواپرو

موضوع را با آموزش‌های مرتبط ادامه دهید و نکته‌های کاربردی را در مسیر خود نگه دارید

مشاهده دوره‌ها
مطالب پیشنهادی

ادامه مطالعه

xدسته‌بندی نشده
۱۱ دی ۱۳۹۸ مطالعه کوتاه

x

پادکست شماره 3 – راه های کسب درآمد از برنامه نویسی

مطالعه مطلب
پادکست شماره 3 - راه های کسب درآمد از برنامه نویسیپادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 3 - راه های کسب درآمد از برنامه نویسی

در این پادکست برنامه نویسی به شیوه ها و راه های کسب درآمد از برنامه نویسی پرداخته ایم. یک کاغذ و قلم بردارید و به پادکست گوش بدید.

مطالعه مطلب
پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟پادکست
۲۹ اردیبهشت ۱۴۰۴ مطالعه کوتاه

پادکست شماره 2 - چگونه وارد فضای برنامه نویسی شویم؟

در این پادکست برنامه نویسی یاد میگیریم که چگونه وارد فضای برنامه نویسی شویم و تخصص برنامه نویسی را به دست آوریم.

مطالعه مطلب
جاواپرومرجع تخصصی یادگیری و توسعهٔ جاوا

تجربه‌ای منظم، ساده و حرفه‌ای برای یادگیری عمیق جاوا، Spring و مهندسی نرم‌افزار؛ قابل استفاده در موبایل، تبلت و دسکتاپ

یادگیری

همه دوره‌هاآموزش رایگانمسیر یادگیریمدرس‌ها

جاواپرو

درباره ماخدمات تخصصیدرخواست پروژهبلاگ فنی

پشتیبانی

تماس با ماپرسش‌های متداولقوانین و حریم خصوصیبروزرسانی‌های جاواپروثبت تیکت
خرید امنپرداخت فقط در درگاه رسمیپشتیبانی آموزشیمسیر ارتباط شفاف و پیگیری‌پذیردسترسی پایداروب‌اپ واکنش‌گرا روی همه دستگاه‌ها
© ۱۴۰۵ جاواپرو؛ همه حقوق محفوظ استتوسعه توسط پایاپینگ
خانهدوره‌هاسبد