স্প্রিং ডক্সের বিভাগ 3.4.4.5 এটিকে সুন্দরভাবে ব্যাখ্যা করেছে:
(দয়া করে নোট করুন যে নিম্নলিখিত 'ব্যবহারকারীর পছন্দসই' শিমের সংজ্ঞা হিসাবে এটি দাঁড়িয়েছে অসম্পূর্ণ):
<bean id="userPreferences" class="com.foo.UserPreferences" scope="session"/>
<bean id="userManager" class="com.foo.UserManager">
<property name="userPreferences" ref="userPreferences"/>
</bean>
উপরের কনফিগারেশন থেকে এটি স্পষ্ট যে সিঙ্গলটন বিন 'ইউজারম্যানেজার' এইচটিটিপি সেশন-স্কোপড শিমের 'ইউজারপ্রাইফারেন্সস'-এর একটি রেফারেন্স দিয়ে ইনজেকশন দেওয়া হচ্ছে। এখানে মূল বক্তব্যটি হ'ল 'ইউজারম্যানেজার' বিন একটি সিঙ্গলটন ... এটি প্রতি ধারক হিসাবে ঠিক একবার ইনস্ট্যান্ট করা হবে , এবং এর নির্ভরতা (এক্ষেত্রে শুধুমাত্র একটি, 'ব্যবহারকারীপ্রিফারেন্স' বিন) কেবলমাত্র ইনজেকশন দেওয়া হবে (একবার! ) ।
এর অর্থ হ'ল 'ইউজারম্যানেজার' (ধারণাগতভাবে) কেবল কখনও একই 'ইউজারপ্রাইফারেন্স' অবজেক্টে কাজ করবে, এটিই এটির সাথে প্রাথমিকভাবে ইনজেকশন দেওয়া হয়েছিল।
আপনি যখন কোনও এইচটিটিপি সেশন-স্কোপড শিমকে একটি সহযোগী বস্তুতে (সাধারণত) নির্ভরতা হিসাবে নির্ভরতা হিসাবে ইনজেক্ট করেন তখন এটি আপনি চান না। পরিবর্তে, আমরা যা চাই তা প্রতিটি কন্টেইনারটির জন্য একক 'ইউজারম্যানেজার' অবজেক্ট এবং তারপরে, এইচটিটিপি সেশনের জীবদ্দশায় আমরা এইচটিটিপি সেশনটি সুনির্দিষ্ট একটি 'ইউজারপ্রাইফারেন্স' অবজেক্টটি দেখতে এবং ব্যবহার করতে চাই ।
বরং তার পরে আপনার যা দরকার তা হ'ল কিছু প্রকার অবজেক্টকে ইনজেক্ট করা যা ইউজারপ্রাইফারেন্স ক্লাসের মতো সঠিক একই পাবলিক ইন্টারফেসটি প্রকাশ করে (আদর্শভাবে একটি অবজেক্ট যা ইউজারপ্রাইফারেন্স উদাহরণস্বরূপ) এবং এটি যথাসম্ভব স্মার্ট যাতে প্রকৃত ইউজারপ্রিফারেন্সেস অবজেক্টটি আনতে সক্ষম হয় অন্তর্নিহিত স্কোপিং পদ্ধতিটি যা আমরা বেছে নিয়েছি তা থেকে (এইচটিটিপি অনুরোধ, সেশন, ইত্যাদি)। এরপরে আমরা নিরাপদে এই 'প্রক্সি অবজেক্টটি' ইউজারম্যানেজার 'শিমের মধ্যে ইনজেকশন করতে পারি, যা আনন্দের সাথে অজানা থাকবে যে ইউজারপ্রাইফারেন্স রেফারেন্স যেটি ধরে রেখেছে তা হ'ল প্রক্সি ।
আমাদের ক্ষেত্রে, যখন কোনও ইউজারম্যানেজার নির্ভরতা-ইনজেকশনের ব্যবহারকারীর পছন্দসই বস্তুটিতে কোনও পদ্ধতির ডাক দেয়, তখন প্রকৃতপক্ষে প্রক্সিটিতে কোনও পদ্ধতিতে প্রার্থনা করা হবে হবে ... প্রক্সিটি তখনই বন্ধ হয়ে যাবে এবং প্রকৃত ইউজারপ্রিফেরেন্স অবজেক্ট থেকে (এই ক্ষেত্রে) আনবে এইচটিটিপি অধিবেশন এবং পুনরুদ্ধার করা সত্যিকারের ব্যবহারকারীর পছন্দসই বস্তুটির জন্য পদ্ধতিটি অনুরোধ করুন।
এজন্য আপনার অনুরোধ-, সেশন- এবং গ্লোবালসেশন-স্কোপড মটরশুটিগুলিকে সহযোগিতা করার উদ্দেশ্যে ইনজেক্ট করার সময় আপনার নিম্নলিখিত, সঠিক এবং সম্পূর্ণ, কনফিগারেশনটি প্রয়োজন:
<bean id="userPreferences" class="com.foo.UserPreferences" scope="session">
<aop:scoped-proxy/>
</bean>
<bean id="userManager" class="com.foo.UserManager">
<property name="userPreferences" ref="userPreferences"/>
</bean>