সিডিআই ব্যবহার করুন।
JSF 2.3 অনুযায়ী, @ManagedBean
হয় অবচিত । আরও দেখুন বৈশিষ্ট ইস্যু 1417 । এর অর্থ এটি বেছে @ManagedBean
নেওয়ার কারণ নেই @Named
। এটি প্রথম মোজারার ২.৩.০ বিটা সংস্করণ এম06 এ প্রয়োগ করা হয়েছিল।
ইতিহাস
মূল পার্থক্যটি হ'ল, @ManagedBean
জেএসএফ কাঠামো দ্বারা পরিচালিত হয় এবং এটি কেবল @ManagedProperty
অন্য জেএসএফ পরিচালিত মটরশুটিগুলির মাধ্যমে উপলব্ধ। @Named
CDI ফ্রেমওয়ার্ক মাধ্যমে আবেদন সার্ভার (ধারক) দ্বারা পরিচালিত এবং মাধ্যমে হয় @Inject
মত একটি ধারক পরিচালিত হস্তনির্মিত বস্তু যে কোন ধরণের জন্য উপলব্ধ @WebListener
, @WebFilter
, @WebServlet
, @Path
, @Stateless
, ইত্যাদি এবং এমনকি একটি JSF @ManagedBean
। অন্য দিক থেকে, @ManagedProperty
কোনও বা অন্য কোনও ধারক পরিচালিত শিল্পকর্মের অভ্যন্তরে কাজ করে না@Named
। এটি কেবলমাত্র ভিতরেই কাজ করে @ManagedBean
।
আর একটি পার্থক্য হ'ল সিডিআই প্রকৃতপক্ষে প্রতি-অনুরোধ / থ্রেড ভিত্তিতে লক্ষ্য স্কোপে প্রক্সিগুলি প্রেরণকারী প্রক্সিগুলিকে ইনজেকশন দেয় (যেমন কীভাবে ইজেবি ইনজেকশন দেওয়া হয়েছে)। এই প্রক্রিয়াটি বিস্তৃত সুযোগের শিমের মধ্যে একটি সংকীর্ণ সুযোগের শিমকে ইনজেকশনের অনুমতি দেয়, যা জেএসএফ দিয়ে সম্ভব নয় @ManagedProperty
। JSF "উদ্বুদ্ধ" এখানে (, এছাড়াও যে ঠিক কেন একটি সেটার প্রয়োজন বোধ করা হয় যখন একটি সেটার আবাহন করার মাধ্যমে সরাসরি শারীরিক উদাহরণস্বরূপ না সঙ্গে প্রয়োজনীয় @Inject
)।
সরাসরি কোনও অসুবিধা না হলেও - অন্যান্য উপায় রয়েছে - এর পরিধিটি @ManagedBean
কেবল সীমাবদ্ধ। অন্য দৃষ্টিকোণ থেকে, আপনি যদি "অত্যধিক" প্রকাশ করতে চান না @Inject
, আপনি কেবল আপনার পরিচালিত মটরশুটি রাখতে পারেন @ManagedBean
। এটা protected
বনাম মত public
। কিন্তু এটি আসলে গণনা করে না।
কমপক্ষে, জেএসএফ ২.০ / ২.১-তে, সিডিআই দ্বারা জেএসএফ ব্যাকিং শিমের পরিচালনার বৃহত্তম অসুবিধাটি হ'ল সিডিআই এর সমতুল্য নেই @ViewScoped
। @ConversationScoped
ঘনিষ্ঠ আসে, কিন্তু এখনও ম্যানুয়ালি শুরু এবং বাঁধন প্রয়োজন এবং এটি একটি কুশ্রী appends cid
ফলাফল URL গুলিতে অনুরোধ প্যারামিটার। জাইএসএফের সিডিআইতে সম্পূর্ণ স্বচ্ছভাবে ব্রিজ দিয়ে মাইফিসস সিওডি সহজ করে তোলে javax.faces.bean.ViewScoped
যাতে আপনি কেবল এটি করতে পারেন @Named @ViewScoped
, তবে windowId
এটি সরল ভ্যানিলা পৃষ্ঠা-পৃষ্ঠা-পৃষ্ঠা নেভিগেশনে, ফলাফলের URLগুলিতে একটি কুৎসিত অনুরোধের প্যারামিটার যুক্ত করে। ওমনিফিসগুলি একটি সত্য সিডিআই দিয়ে এগুলি সমাধান করে @ViewScoped
যা স্বেচ্ছাসেবীর অনুরোধ প্যারামিটারের পরিবর্তে শিমের ক্ষেত্রটি জেএসএফ দেখার অবস্থার সাথে সংযুক্ত করে।
জেএসএফ ২.২ (যা এই প্রশ্ন / উত্তরের 3 বছর পরে প্রকাশিত হয়) @ViewScoped
এর বাক্সের স্বাদে একটি নতুন সম্পূর্ণ সিডিআই সুসংগত টীকা সরবরাহ করে javax.faces.view.ViewScoped
। জেএসএফ ২.২ এমনকি সিডিআই-সহ কেবল আসে @FlowScoped
যার @ManagedBean
সমতুল্য নেই, এর ফলে জেএসএফ ব্যবহারকারীদের সিডিআইয়ের দিকে ঠেলে দেয়। প্রত্যাশাটি হ'ল @ManagedBean
এবং বন্ধুরা জাভা EE 8 অনুযায়ী অবমানিত হবে you're আপনি যদি এখনও ব্যবহার করছেন তবে @ManagedBean
ভবিষ্যতে আপগ্রেড পাথের জন্য প্রস্তুত হতে সিডিআইতে স্যুইচ করার দৃ strongly় পরামর্শ দেওয়া হচ্ছে। সিডিআই জাভা ইই ওয়েব প্রোফাইলের সামঞ্জস্যপূর্ণ পাত্রে যেমন ওয়াইল্ডফ্লাই, টমইই এবং গ্লাস ফিশে সহজেই উপলব্ধ। টমক্যাটের জন্য আপনাকে এটিকে আলাদাভাবে ইনস্টল করতে হবে ঠিক যেমনটি আপনি জেএসএফের জন্য ইতিমধ্যে করেছিলেন। টমকেটে সিডিআই ইনস্টল করবেন কীভাবে দেখুন ?