একটি মানক স্প্রিং ওয়েব অ্যাপ্লিকেশন (রু বা "স্প্রিং এমভিসি প্রকল্প" টেম্পলেট দ্বারা নির্মিত) ContextLoaderListenerএবং এর সাথে একটি ওয়েব.এক্সএমএল তৈরি করে DispatcherServlet। কেন তারা কেবল DispatcherServletসম্পূর্ণ কনফিগারেশনটি লোড করতে ব্যবহার করে না এবং তৈরি করে না?
আমি বুঝতে পেরেছি যে প্রাসঙ্গিক নয় এমন স্টাফ লোড করতে ContextLoaderListener ব্যবহার করা উচিত এবং ওয়েব প্রাসঙ্গিক স্টাফ লোড করতে ডিসপ্যাচারসার্ভালেট ব্যবহার করা উচিত (নিয়ন্ত্রণকারী, ...)। এবং এই ফলাফল দুটি প্রসঙ্গে: একটি পিতা বা মাতা এবং সন্তানের প্রসঙ্গে।
পটভূমি:
আমি বেশ কয়েক বছর ধরে এটি এই স্ট্যান্ডার্ড উপায়ে করছি।
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Handles Spring requests -->
<servlet>
<servlet-name>roo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring/webmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
এটি প্রায়শই দুটি প্রসঙ্গে এবং তাদের মধ্যে নির্ভরতা নিয়ে সমস্যা তৈরি করে। অতীতে আমি সর্বদা একটি সমাধান খুঁজতে সক্ষম হয়েছি এবং আমার দৃ strong় অনুভূতি রয়েছে যে এটি সফ্টওয়্যার কাঠামো / আর্কিটেকচারকে সর্বদা আরও ভাল করে তোলে। তবে এখন আমি উভয় প্রসঙ্গে ঘটনাগুলির সাথে একটি সমস্যার মুখোমুখি হয়েছি ।
- তবে এটি আমার এই দুটি প্রসঙ্গে প্যাটার্নটিকে পুনর্বিবেচনা দেয় এবং আমি নিজেকে জিজ্ঞাসা করছি: আমাকে কেন এই সমস্যায় ফেলতে হবে, কেন সমস্ত বসন্তের কনফিগারেশন ফাইল এক সাথে লোড করা DispatcherServletএবং ContextLoaderListenerপুরোপুরি মুছে ফেলা হচ্ছে না । (আমার কাছে এখনও বিভিন্ন কনফিগারেশন ফাইল থাকতে হবে তবে কেবল একটি প্রসঙ্গ))
অপসারণ করার কোন কারণ আছে কি ContextLoaderListener?