শিকড় এবং শিশু প্রসঙ্গটি আরও পড়ার আগে দয়া করে বুঝতে পারেন -
বসন্তে একসাথে একাধিক প্রসঙ্গ থাকতে পারে। এর মধ্যে একটি হ'ল মূল প্রসঙ্গ এবং অন্য সমস্ত প্রসঙ্গগুলি শিশু প্রসঙ্গে হবে।
সমস্ত শিশু প্রসঙ্গে মূল প্রসঙ্গে নির্ধারিত মটরশুটিগুলি অ্যাক্সেস করতে পারে; তবে বিপরীতটি সত্য নয়। রুট প্রসঙ্গ শিশু প্রসঙ্গের মটরশুটি অ্যাক্সেস করতে পারে না।
অ্যাপ্লিকেশন কনটেক্সট:
প্রয়োগকন্টেক্সট.এক্সএমএল প্রতিটি ওয়েব অ্যাপ্লিকেশনের জন্য মূল কনটেক্সট কনফিগারেশন। স্প্রিং অ্যাপ্লিকেশন কনটেক্সট.এক্সএমএল ফাইল লোড করে এবং পুরো অ্যাপ্লিকেশনটির জন্য অ্যাপ্লিকেশন কনটেক্সট তৈরি করে। প্রতি ওয়েব অ্যাপ্লিকেশনটিতে কেবলমাত্র একটি অ্যাপ্লিকেশন প্রসঙ্গ থাকবে। আপনি যদি কনটেক্সট কনফিগলোকেশন প্যারাম ব্যবহার করে ওয়েব.এক্সএমএলে কনটেক্সট কনফিগারেশন ফাইলের নামটি স্পষ্টভাবে ঘোষণা করছেন না, স্প্রিং WEB-INF ফোল্ডারের অধীনে অ্যাপ্লিকেশন কনটেক্সট.এক্সএমএল অনুসন্ধান করবে এবং যদি এই ফাইলটি না পাওয়া যায় তবে ফাইলনটফাউন্ডএক্সসেপশন নিক্ষেপ করবে।
ContextLoaderListener মূল অ্যাপ্লিকেশন প্রসঙ্গে প্রকৃত আরম্ভের কাজটি সম্পাদন করে। একটি "কনটেক্সট কনফিগলোকেশন" কনটেক্সট-প্যারাম পড়ুন এবং এর মানটিকে প্রসঙ্গের দৃষ্টান্তের সাথে ছাড়িয়ে এটি সম্ভাব্য একাধিক ফাইল পাথকে পার্স করে যা যেকোন সংখ্যক কমা ও স্পেস দ্বারা পৃথক করা যায়, যেমন "WEB-INF / applicationContext1.xML, WEB-INF / applicationContext2.xml "। ContextLoaderListener alচ্ছিক। এখানে কেবল একটি বক্তব্য রাখুন: আপনি ডিসপ্যাচারসার্ভালেট সহ কেবলমাত্র একটি বেসিক ন্যূনতম ওয়েব.এক্সএমএল কনটেক্সটলডারলিস্টনারটি কনফিগার না করেই একটি স্প্রিং অ্যাপ্লিকেশন বুট করতে পারেন।
ডিসপ্যাচারসার্ভালেট ডিসপ্যাচারসার্ভালেট মূলত একটি সার্লেট (এটি HttpServlet প্রসারিত) যার মূল উদ্দেশ্য কনফিগার করা URL প্যাটার্নের সাথে মেলে আগত ওয়েব অনুরোধগুলি পরিচালনা করা handle এটি আগত ইউআরআই লাগবে এবং নিয়ামক এবং দর্শনের সঠিক সংমিশ্রণটি আবিষ্কার করে। সুতরাং এটি সামনের নিয়ামক।
আপনি যখন বসন্ত কনফিগারেশনে একটি ডিসপ্যাচারসারলিটকে সংজ্ঞায়িত করেন, আপনি কনট্রোল কনফিগলোকেশন অ্যাট্রিবিউট ব্যবহার করে নিয়ামক শ্রেণি, ভিউ ম্যাপিং ইত্যাদির এন্ট্রি সহ একটি এক্সএমএল ফাইল সরবরাহ করেন।
ওয়েব অ্যাপ্লিকেশন কনটেক্সট অ্যাপ্লিকেশন কনটেক্সট ছাড়াও একক ওয়েব অ্যাপ্লিকেশনটিতে একাধিক ওয়েব অ্যাপ্লিকেশন কনটেক্সট থাকতে পারে। সরল কথায়, প্রতিটি ডিসপ্যাচারসারলেট একক ওয়েব অ্যাপ্লিকেশনকন্টেক্সটের সাথে যুক্ত। এক্সএক্সএক্সএক্স-সার্লেট.এক্সএমএল ফাইলটি ডিসপ্যাচারসার্ভলেটের সাথে সুনির্দিষ্ট এবং একটি ওয়েব অ্যাপ্লিকেশনটিতে অনুরোধগুলি পরিচালনা করতে একাধিক ডিসপ্যাচারসারললেট কনফিগার করা যেতে পারে। এই জাতীয় পরিস্থিতিতে, প্রতিটি ডিসপ্যাচারসার্ভালে একটি পৃথক xxx-servlet.xML কনফিগার করা থাকে। তবে, অ্যাপ্লিকেশন কনটেক্সট.এক্সএমএল সমস্ত সার্লেলেট কনফিগারেশন ফাইলের জন্য সাধারণ হবে। স্প্রিংটি আপনার ওয়েব অ্যাপস ওয়েবে-আইএনএফ ফোল্ডার থেকে ডিফল্টরূপে "xxx-servlet.xML" নামক লোড ফাইল যেখানে xxx ওয়েব.এক্সএমএল-এ সার্ভলেটের নাম। আপনি যদি সেই ফাইলটির নাম পরিবর্তন করতে বা অবস্থান পরিবর্তন করতে চান, তবে কনটেক্সটফিগলোকেশনকে পরম নাম হিসাবে দীক্ষা-পরম যুক্ত করুন।
তাদের মধ্যে তুলনা এবং সম্পর্ক:
ContextLoaderListener বনাম DispatcherServlet
ContextLoaderListener মূল অ্যাপ্লিকেশন প্রসঙ্গ তৈরি করে। ডিসপ্যাচারসার সার্লেট এন্ট্রিগুলি সার্ভলেট এন্ট্রি প্রতি একটি শিশু অ্যাপ্লিকেশন প্রসঙ্গ তৈরি করে। শিশু প্রসঙ্গে মূল প্রসঙ্গে নির্ধারিত মটরশুটিগুলি অ্যাক্সেস করতে পারে। মূল প্রসঙ্গে শিম শিশু প্রসঙ্গে (সরাসরি) মটরশুটি অ্যাক্সেস করতে পারে না। সার্ভারলেট কনটেক্সটে সমস্ত প্রসঙ্গ যুক্ত করা হয়েছে। আপনি WebApplicationContextUtils ক্লাস ব্যবহার করে মূল প্রসঙ্গে অ্যাক্সেস করতে পারেন।
স্প্রিং ডকুমেন্টেশন পড়ার পরে নিম্নলিখিতটি বোঝা যাচ্ছে:
ক) অ্যাপ্লিকেশন-প্রবন্ধগুলি শ্রেণিবদ্ধ এবং তাই ওয়েব অ্যাপ্লিকেশনস কনটেক্সটস। এখানে ডকুমেন্টেশন রেফারেন্স করুন।
খ) কনটেক্সটলয়েডারলিস্টনার ওয়েব-অ্যাপ্লিকেশনটির জন্য একটি মূল ওয়েব-অ্যাপ্লিকেশন-প্রসঙ্গ তৈরি করে এবং এটি সার্লেটলেট কনটেস্টে রাখে। এই প্রসঙ্গটি বসন্ত-পরিচালিত মটরশুটি লোড এবং আনলোড করতে ব্যবহার করা যেতে পারে নিয়ামক স্তরে (স্ট্রুটস বা স্প্রিং এমভিসি) কী প্রযুক্তি ব্যবহার করা হচ্ছে তা নির্বিশেষে respective
গ) ডিসপ্যাচারসার্ভালেট তার নিজস্ব ওয়েব অ্যাপ্লিকেশন কনটেক্সট তৈরি করে এবং হ্যান্ডলার / নিয়ন্ত্রক / ভিউ-রিসোলভারগুলি এই প্রসঙ্গে পরিচালিত হয়।
ঘ) কনস্টেক্সটলডারলিস্টনার যখন ডিসপ্যাচারসার্ভলেটের সাথে ব্যবহার করা হয়, তখন প্রথমে যেমন বলা হয়েছিল তেমনি একটি মূল ওয়েব-অ্যাপ্লিকেশন-প্রসঙ্গ তৈরি করা হয় এবং ডিসপ্যাচারসার্লভেট দ্বারা একটি শিশু-প্রসঙ্গও তৈরি করা হয় এবং মূল অ্যাপ্লিকেশন-প্রসঙ্গে প্রাসঙ্গিকভাবে সংযুক্ত থাকে। এখানে ডকুমেন্টেশন রেফারেন্স করুন।
যখন আমরা স্প্রিং এমভিসির সাথে কাজ করছি এবং পরিষেবাদি স্তরে স্প্রিংটি ব্যবহার করছি তখন আমরা দুটি অ্যাপ্লিকেশন-প্রসঙ্গ সরবরাহ করি। প্রথমটি কনটেক্সটলয়েডারলিস্টনার এবং অন্যটি ডিসপ্যাচারসার্ভালেট ব্যবহার করে কনফিগার করা হয়েছে
সাধারণত, আপনি ডিসপ্যাচারসারভাইলেট প্রসঙ্গে সমস্ত এমভিসি সম্পর্কিত মটরশুটি (কন্ট্রোলার এবং মতামত ইত্যাদি) এবং কনটেক্সটলয়েডারলিস্টনার দ্বারা মূল প্রসঙ্গে সুরক্ষা, লেনদেন, পরিষেবা ইত্যাদির মতো সমস্ত ক্রস কাটানো মটরশুটি সংজ্ঞায়িত করবেন।
আরও তথ্যের জন্য এটি দেখুন:
https://siddharthnawani.blogspot.com/2019/10/contextloaderlistener-vs.html